2017-07-21 92 views
2

我有一個RecyclerView其中有EditText作爲其列表項。當我滾動RecyclerView時,EditText失去焦點,當項目熄滅屏幕。因此,滾動時回到屏幕上的焦點不會保留在EditText上。EditText失去對RecyclerView的滾動重點

我想讓焦點留在同一個項目上。爲此,我還嘗試將該項目的position存儲在焦點上,並重新指定onBindViewHolder的焦點。但是這減慢了滾動。

我也試過這個ListView但是還有另一種focus的相關問題。焦點跳到那裏。

已經在SO上搜索過這個地段,並且Google搜索了很多。但總是找到像android:focusableInTouchMode="true"android:descendantFocusability="afterDescendants"這樣的答案,這是行不通的。

任何幫助將不勝感激。

回答

5

RecyclerView的全部重點是重用視圖,以便手機不必一次將所有行保存在內存中,不必一直銷燬並創建視圖。當您的EditText離開屏幕時,手機將採用該視圖,重置其內容並將其移動到傳入視圖堆棧的底部。

RecyclerView diagram

這意味着,一旦你EditText離開屏幕就不再存在。它不能保持焦點,因爲它從佈局中移除。

解決這個問題的唯一方法就是您提到的存儲位置,檢查屏幕位置何時出現以及手動還原焦點。