我有四个 TextView,我试图控制当用户使用 TalkBack 和触摸手势导航时它们获得焦点的顺序。
TextView android:text="foo" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_foo" android:nextFocusDown="@+id/id_baz"/>
TextView android:text="bar" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/id_bar" android:nextFocusDown="@+id/id_qux"/>
TextView android:text="baz" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_baz" android:nextFocusDown="@id/id_bar"/>
TextView android:text="qux" android:clickable="false" android:focusable="true" android:focusableInTouchMode="true" android:id="@id/id_qux" android:nextFocusDown="@id/id_foo"/>
当用户打开 TalkBack,触摸“foo”,然后向下滑动以在 TextView 之间导航时,我希望顺序为 foo->baz->bar->qux。但是,我尝试使用 nextFocusDown 设置的顺序似乎没有效果,相反,焦点顺序总是跟随屏幕上 TextViews 的位置。我已经尝试了可点击、可聚焦和可聚焦InTouchMode 的所有可能组合。我试过在代码中的视图上调用 setNextFocusDownId 。我尝试在 TextViews 上设置 android:imeOptions="actionNext"。似乎没有任何效果。我错过了什么?