最近在项目中发现对于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"