在項目開發(fā)過程遇到一個問題巡蘸,切換布局中某個子view的visibility為gone后奋隶,RecyclerView 自己莫名其妙的滾動了一點。通過網(wǎng)上查找發(fā)現(xiàn)悦荒,這是RecyclerView 搶占焦點導致唯欣。可以用以下方式解決:
父布局設置屬性descendantFocusability 為 blocksDescendants搬味,RecyclerView 設置 屬性overScrollMode 為never境氢。
<com.xxxxxxxxxxxx.Layout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<com.xxxxxxxxxx.view.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never" />
</com.xxxxxxxxxxxx.Layout>
descendantFocusability 屬性有三種屬性值:
1、beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
2碰纬、afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
3萍聊、blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點