最近在項目中發現對于ScrollView嵌套RecyclerView顯示和滑動方面有些問題,就簡單講講解決辦法。
之前有簡單寫過處理ScrollView嵌套RecyclerView不顯示問題:
解決辦法:首先,將嵌套在外層的ScrollView的寬、高均設置為match_parent,然后,在ScrollView的布局中加入一句話:
android:fillViewport="true"
(ScrollView如果寬高為wrap_content,或者ScrollView中沒有android:fillViewport="true",RecyclerView會不顯示)。
問題1、在6.0以上版本中ScrollView嵌套RecyclerView顯示了,但是顯示不完全
解決:這其實是在版本升級以后的一個小bug,只需要在RecyclerView的外層再嵌套一個LinearLayout或者 RelativeLayout即可,這樣RecyclerView就可以顯示完整,不用像一些博客說的那樣進行高度計算和 OnMeasured()重寫。
問題2、ScrollView嵌套RecyclerView后滑動很緩慢,不流暢,沒有慣性
解決:對于RecyclerView加入兩行代碼:
recyclerView.setHasFixedSize(true);
recyclerView.setNestedScrollingEnabled(false);
即可使其滑動流暢,有慣性。
問題3、ScrollView嵌套RecyclerView后,頁面不會從頁面頂部開始顯示,會從RecyclerView第一個Item的位 置開始顯示
解決:在Xml頁面頂部位置的布局控件中加入兩句代碼:
android:focusable="true"
android:focusableInTouchMode="true"