環境
レイアウトのさまざまなビューのフォーカス順序を指定する必要があるため、完全にアクセスできる必要があるアプリを開発しています。
私のレイアウトは次のようになります (数字はフォーカス順序を定義し、3はListView
一般的なビューです):
XML の関連部分 (自分のニーズに合わせて意図的に使用nextFocusDown
したのではなく、使用したことを考慮して):nextFocusForward
<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" />
これは、ListView がアイテムで満たされている場合にうまく機能し、フォーカスは意図したとおりに動作します。1 ⇒ 2 ⇒ 3 (アイテムごと) ⇒ 4 ⇒ 1 ... など。
問題
私ListView
が空のとき、Android フォーカス マネージャーは 2 番目のビューでスタックしているようです。フォーカスが項目2に達すると、ListView
さらに少ないビューから 4 番目のビューにはフォーカスが与えられません。私のリストにアイテムが含まれていない場合、フォーカスを2から4に直接移動したいからです。
質問
何か不足していますか、それともコード内の他の何かがこの奇妙な動作を引き起こす可能性がありますか?