美文网首页Android
解决RecyclerView嵌套,加载数据,页面上滚。

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

作者: 请叫我果爸 | 来源:发表于2020-07-22 09:43 被阅读0次

    问题描述

    先来看问题的效果。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嵌套,加载数据,页面上滚。

        本文链接:https://www.haomeiwen.com/subject/zitzkktx.html