解决RecyclerView嵌套,加载数据,页面上滚。

问题描述

先来看问题的效果。RecyclerView嵌套,然后点击加载更多,添加新的数据,结果数据添加了,但是当前Item的位置没变,但是页面上的内容其实是往上滚动了。


解决方案

网上都说是焦点被抢占的问题,需要设置
android:focusable="false"
android:focusableInTouchMode="false"
这两段代码。

但是我设置了也没有用,后来在发现通过设置
android:descendantFocusability="blocksDescendants"解决我的问题。

原因

因为RecuclerView的Item中会有一些,ImageButton,Button,CheckBox之类的控件,这些控件也会抢占焦点。

android:descendantFocusability
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

    beforeDescendants:viewgroup会优先其子类控件而获取到焦点

    afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

    blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

你可能感兴趣的:(解决RecyclerView嵌套,加载数据,页面上滚。)