第一种解决方式:
当ScrollView与RecyclerView嵌套使用时遇到的几个坑
-
1、6.0及以上系统RecyclerView显示不全
-
2、滑动冲突,不流畅
-
3、页面切换导致嵌套布局不显示在顶部,而是显示RecyclerView的第一个item
1.显示不全
使用RelativeLayout将RecyclerView嵌套
-
<RelativeLayout
-
android:layout_width="match_parent"
-
android:layout_height="wrap_content">
-
<android.support.v7.widget.RecyclerView
-
android:layout_width="match_parent"
-
android:layout_height="wrap_content"/>
-
</RelativeLayout>
其他思路:重写LinearLayoutManager,尝试了下并未解决
2.滑动不流畅
recyclerView.setNestedScrollingEnabled(false);
3.嵌套布局不显示在顶部
将RecyclerView的焦点取消即可
第二种解决方式:
使用NestedScrollView来替代ScrollView,但是注意两点:
1.使用NestedScrollView嵌套RecyclerView时,滑动lRecyclerView列表会出现强烈的卡顿感
解决:mRecyclerView.setNestedScrollingEnabled(false);
2可能使用NestedScrollView嵌套RecyclerView时,每次打开界面都是定位在RecyclerView在屏幕顶端,列表上面的布局都被顶上去了
解决:
解决方法就是NestScrollView节点添加
android:focusableInTouchMode="true"
然后在NestScrollView的子节点view添加:
android:descendantFocusability="blocksDescendants"
或者 直接mRecyclerVIew.setFocusableInTouchMode(false)