看标題是不是不太明白,來兩張圖檔:

正常情況下,我們期待的是進入頁面以後顯示左圖效果,可是由于NestedScrollView嵌套RecyclerView,導緻Recyclerview占據焦點導緻整個NestedScrollView内容上滑。知道原因以後解決這個bug就容易多了。
方法一:在根布局設定android:descendantFocusability=”blocksDescendants” ;
android:descendantFocusability 有三種值:
beforeDescendants:viewgroup會優先其子類控件而擷取到焦點
afterDescendants:viewgroup隻有當其子類控件不需要擷取焦點時才擷取焦點
blocksDescendants:viewgroup會覆寫子類控件而直接獲得焦點
這種方法,會造成頁面中Editext焦點被搶導緻無法輸入,需要用到第二種方法。
方法二:對于有Editext的頁面需要在根布局使用 :
android:focusable="true"
android:focusableInTouchMode="true"
方法三:在NestedScrollView頂部第一個控件使用 :
android:focusable="true"
android:focusableInTouchMode="true"
這種方法我覺得有點不太可靠,因為有時候是可行的,有時候是不行的。。。。