NestedScrollView、ScrollView 加載完自動滑動至底部問題的解決方案


正常情況下,由於NestedScrollView/ScrollView 嵌套RecyclerView,可能會導致Recyclerview占據焦點導致整個NestedScrollView/ScrollView內容上滑。

此問題的解決方案如下:

1. 在根布局設置android:descendantFocusability=”blocksDescendants” ;

android:descendantFocusability 有三種值:
beforeDescendants:viewgroup會優先其子類控件而獲取到焦點
afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
這種方法,會造成頁面中Editext焦點被搶導致無法輸入,需要用到第二種方法。

2, 對於有Editext的頁面需要在根布局使用 :

android:focusable="true"
android:focusableInTouchMode="true"

3. 在NestedScrollView/ScrollView頂部第一個控件使用 :

android:focusable="true"
android:focusableInTouchMode="true"

 

 ----------------------------------------------- 分割線 -----------------------------------------------------

2019-12-5 補充:

在實際開發中,不建議使用ScrollView包裹ListView/GridView/ExpandableListView,因為這樣會把ListView的所有Item都加載到內存中,需要消耗巨大的內存和CPU去繪制畫面。推薦使用NestedScrollView。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM