1. 程式人生 > >ViewPager + Fragment + RecyclerView 切換ViewPager時,RecyclerView自動滾動的問題

ViewPager + Fragment + RecyclerView 切換ViewPager時,RecyclerView自動滾動的問題

最近專案中有用到ViewPager + Fragment + RecyclerView的佈局,發現切換ViewPager時,有一個RecyclerView(裡面又嵌套了一個RecyclerView)會自動滾動,原因是因為RecyclerView搶佔了事件的焦點導致。

解決辦法:

在RecyclerView的外層巢狀一個RelativeLayout或一個LinearLayout,並加上

android:descendantFocusability="blocksDescendants"

descendantFocusability有幾個屬性如下:

beforeDescendants:viewgroup會優先其子類控制元件而獲取到焦點

afterDescendants:viewgroup只有當其子類控制元件不需要獲取焦點時才獲取焦點

blocksDescendants:viewgroup會覆蓋子類控制元件而直接獲得焦點

我們需要的是讓父類直接覆蓋子類直接獲取到焦點,這樣RecyclerView就不會自動滑動了。