解決Android ScrollView嵌套RecyclerView出現數據展示不全及滑動卡頓問題

最近做項目的時候需要使用ScrollView嵌套RecyclerView,使用過程中出現了一個問題,在Android6.0以上的手機上面會出現當RecyclerView裏面的數據超過屏幕的時候,RecyclerView的高度會被強制設置爲不超過屏幕的底部,也就會導致多出來的數據並不會展示出來,而是需要去滑動RecyclerView展示多出來的數據,注意這裏滑動的是RecyclerView,並不是ScrollView。也就是說RecyclerView的滑動事件和ScrollView的滑動事件是互不相關的,會造成滑動衝突從而導致滑動非常卡頓。

在網上面找到很多方法,其中一種是重寫LinearLayoutManager的cancanScrollVertical()方法,試了一下,滑動確實不卡頓了(因爲禁止了RecyclerView的滑動事件,不會產生衝突),但是數據卻仍然顯示不全。

還有一種方法是設置RecyclerView的nestedScrollingEnabled="false",這種方法跟上面的效果一樣,還是不能解決數據顯示不全的問題。

最後說一下本人親測可用的兩種方法:

方法1:在XML佈局文件中給RecyclerView外面包一層RelativeLayout,並給RecyclerView添加屬性android:nestedScrollingEnabled="false",代碼如下

<RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content">

     <android.support.v7.widget.RecyclerView
          android:id="@+id/recyclerView"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:nestedScrollingEnabled="false" />

</RelativeLayout>

方法二:使用android.support.v4.widget.NestedScrollView代替ScrollView,並給RecyclerView添加屬性android:nestedScrollingEnabled="false"

最後運行項目,大功告成!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章