本文主要是介绍解决ScrollView 嵌套RecyclerView出现的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ScrollView 嵌套RecyclerView会使RecyclerView列表显示不全,很多人都把ScrollView替换成NestedScrollView,或者重写RecyclerView。
其实使用ScrollView并且不用重写RecyclerView也是可以实现的,那就是在RecyclerView外面再嵌套一层布局就可以了。像下面这样:
<ScrollViewandroid:id="@+id/scrollView"android:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="none"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- 这上面可以放其他布局 -->……<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><android.support.v7.widget.RecyclerViewandroid:id="@+id/rv_hot"android:layout_width="match_parent"android:layout_height="wrap_content"android:overScrollMode="never"/></RelativeLayout></LinearLayout></ScrollView>
然后设置RecyclerView禁止滑动,有两种方法:
第一种:
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false){@Overridepublic boolean canScrollVertically() {return false;//禁止滑动}});
第二种:
rv_hot.setNestedScrollingEnabled(false);//取消recyclerview单独的滑动效果
ScrollView 嵌套RecyclerView,每次打开界面都是定位在RecyclerView在屏幕顶端,列表上面的布局都被顶上去了 。
下面的设置可以解决这个问题:
recyclerView.setFocusableInTouchMode(false);//让recyclerView失去焦点,不然会把上面布局顶上去
这篇关于解决ScrollView 嵌套RecyclerView出现的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!