0

我正在致力於AccessibilityService其中訪問其他應用程序佈局。RecyclerView佈局行爲

例如,如果我有一個自定義佈局,我會精確聚焦處理用於在XML每個視圖,像這樣:

<View 
... 
android:nextFocusDown="@id/another_view_id" 
android:nextFocusLeft="@id/another_view_id" 
android:nextFocusRight="@id/another_view_id" 
android:nextFocusUp="@id/another_view_id" /> 

當我使用ListView我通過發送某些被定義的行爲KEYCODE_DPAD_UPKEYCODE_DPAD_DOWN導入系統,目的是導航佈局。

現在我需要使用RecyclerView,我無法理解我如何以正確的順序訪問視圖的項目。

我的意思是正確的順序是什麼:

What I mean by the correct order

有人可以見識一下佈局順序的工作原理與RecyclerView的方式嗎?

+0

所以RecyclerViews是圍繞ViewHolder模式構建的。 ListViews允許主要的低效率已被這個補救。然而,這意味着從適配器內管理位置特定的視圖變得更加困難,因爲視圖本身可以很容易地被回收。幸運的是,構建一個RecyclerView需要一個'LayoutManager'。這個LayoutManager將有一個名爲'findViewByPosition()'的方法。這與相應視圖中的'setNextFocus [Direction]()'方法結合使用。 – zgc7009

+0

目前,我的項目體系結構是這樣工作的:有不同種類的佈局(ListView,帶有選項卡的GridView,RecyclerView)和我創建的,我稱之爲每個人的訪問者。他們收到與他們相對應的「AccessibilityEvent」。這意味着,*即*我的'ListView'有一個'ListViewVisitor',它接收項目計數和當前項目選擇索引。 所以,藉助這種體系結構和您的解釋,我無法訪問我的LayoutManager和查找視圖,這不是我如何使其工作。我需要重新思考它。 –

回答

0

這是回收站模式中的交錯列表