可以更改輔助功能對焦順序嗎?例如,如果我有3個視圖並排放置,使用id view1,view2和view3,是否有一種簡單的方法可以使輔助焦點轉到view3,當用戶從view1向右滑動時?修改輔助功能對焦順序
這是我試過的:
我有以下線性佈局。
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView"
android:focusable="true"
android:nextFocusUp="@+id/imageView3"
android:nextFocusDown="@+id/imageView3"
android:nextFocusRight="@+id/imageView3"
android:nextFocusLeft="@+id/imageView3"
android:nextFocusForward="@+id/imageView3"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView2"
android:focusable="true"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView3"
android:focusable="true"
android:nextFocusUp="@+id/imageView2"
android:nextFocusDown="@+id/imageView2"
android:nextFocusRight="@+id/imageView2"
android:nextFocusLeft="@+id/imageView2"
android:nextFocusForward="@+id/imageView2"
android:src="@drawable/ic_launcher"/>
然後,我啓動它,並將可訪問性焦點放在第一個imageView上。在向右滑動以移動到下一個項目時,我期望它將可訪問性焦點移動到imageView3,但是它會轉到imageView2。
從技術上講,如果您設置了AccessibilityDelegate並手動添加子節點,您可以明確指定遍歷順序,但這會導致其他問題,並且如果TalkBack更改其處理焦點遍歷的方式,則不能保證能夠正常工作。它仍然是一個針對可訪問性框架的開放功能請求。 – alanv 2014-11-04 20:42:00
@alanv你碰巧有一個鏈接到出色的功能請求?我很樂意遵循其進展。更改遍歷順序對於新的浮動操作按鈕特別有用。如果它浮動在自動加載列表上,用戶可能永遠不會通過向右滑動來找到它。 (關於這個問題,請參閱收件箱) – 2015-06-02 08:35:31
Nevermind,看起來好像只是在API 22中添加的!添加了原始問題的答案。 – 2015-06-02 08:50:28