1

Kontext

ich eine App bin developping, die vollständig zugänglich sein muss, für die ich brauche den Fokus Reihenfolge der verschiedenen Ansichten meines Layout angeben.Wie Fokus zu handhaben, wenn Listview leer ist

Mein Layout sieht wie folgt aus (Zahlen den Fokus Ordnung und definieren, ist die ListView und andere sind gemeinsame Ansichten):

My Layout

Die relevanten Teile des XML (unter Berücksichtigung I nextFocusDown verwendet und nicht nextFocusForward absichtlich meine Bedürfnisse) zu passen:

<View 
    android:id="@+id/view_1" 
    android:nextFocusDown="@+id/view_2" /> 

<View 
    android:id="@+id/view_2" 
    android:nextFocusDown="@android:id/list" /> 

<ListView 
    android:id="@android:id/list" 
    android:nextFocusDown="@+id/view_4" /> 

<View 
    android:id="@+id/view_4" 
    android:nextFocusDown="@+id/view_1" /> 

das funktioniert gut, wenn die Listview mit Gegenständen gefüllt ist, t Der Fokus verhält sich wie beabsichtigt. 1 ⇒ 2 ⇒ 3 (Artikel für Artikel) ⇒ 4 ⇒ 1 ... und so weiter. Jetzt

Problem

wenn mein ListView leer ist der Android Focus Manager scheint in der 2. Ansicht stecken. Wenn der Fokus den Punkt erreicht, wird der Fokus nicht auf die ListView noch weniger zur 4. Ansicht gegeben. Denn wenn meine Liste kein Element enthält, möchte ich, dass der Fokus von direkt auf geht.

Frage

bin ich etwas fehlt oder könnte dieses seltsame Verhalten etwas anderes in meinem Code zu produzieren?

Antwort

2

Versuchen zu einstellen programetically wie konzentrieren unten

if(yourListViewAdapter.getCount() <= 0) { 
    view_2.setNextFocusDownId(R.id.view_4); 
} 
+0

ich über diese Art und Weise gedacht zu gehen, aber ich habe ein paar Unterschiede (die zu komplex sind, hier zu erklären), dass dies schwer zu erreichen macht. Wenn das der einzige Weg ist, werde ich es trotzdem versuchen. Danke, werde akzeptieren, weil es die Frage beantwortet –

Verwandte Themen