解決RecyclerView嵌套,加載數(shù)據(jù),頁面上滾。

問題描述

先來看問題的效果。RecyclerView嵌套,然后點擊加載更多,添加新的數(shù)據(jù),結(jié)果數(shù)據(jù)添加了,但是當(dāng)前Item的位置沒變,但是頁面上的內(nèi)容其實是往上滾動了。


解決方案

網(wǎng)上都說是焦點被搶占的問題,需要設(shè)置
android:focusable="false"
android:focusableInTouchMode="false"
這兩段代碼。

但是我設(shè)置了也沒有用,后來在發(fā)現(xiàn)通過設(shè)置
android:descendantFocusability="blocksDescendants"解決我的問題。

原因

因為RecuclerView的Item中會有一些,ImageButton,Button,CheckBox之類的控件,這些控件也會搶占焦點。

android:descendantFocusability
該屬性是當(dāng)一個為view獲取焦點時,定義viewGroup和其子控件兩者之間的關(guān)系。

屬性的值有三種:

    beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點

    afterDescendants:viewgroup只有當(dāng)其子類控件不需要獲取焦點時才獲取焦點

    blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容