标签:加载 obj 也会 lin pre java otl 问题 enable
ScrollView
嵌套RecyclerView
或者RecyclerView
嵌套RecyclerView
来使用, 也会遇到一堆奇奇怪怪的问题, 比如滑动卡顿、数据加载不完、数据加载完后没有停留在顶部等问题今天我们就来写一篇RecyclerView
嵌套版本的解决方案
今年六月份的IO
大会把Kotlin
用做Android
开发的一级语言, 也让这个语言在Android
开发圈子里大火了一把, 所以今天的代码是用Kotlin
来实现(当然还是有Java
版本的).
由于Google
公司大力推荐大家使用RecyclerView
来代替ListView
和GridView
等等控件, 现在越来越多的开发者都已经上手了RecyclerView
了.
也推荐大家赶紧使用RecyclerView
来代替ListView
等等, 好处太多了也就不提了, 配合github
上的一个开源工程使用简直绝配BaseRecyclerViewAdapterHelper
进入正题, 不多BB了
两层
RecyclerView
嵌套这种需求也是很常见的一个需求了, 下面图片就是列举的一个案例
一个页面中有个多个
RecyclerView
时,为了保证数据能完整加载, 一般都是在最外层加上一个ScrollView
, 然而出现的一系列问题, 让人头大, 当然本文章也都提供了解决方案
之前也写过一篇ScrollView
嵌套ListView
或GridView
等控件出现的各种问题的解决的最佳方案, 传送门点我
recyclerView.setLayoutManager(new LinearLayoutManager(this){
@Override
public boolean canScrollVertically() {
//解决ScrollView里存在多个RecyclerView时滑动卡顿的问题
//如果你的RecyclerView是水平滑动的话可以重写canScrollHorizontally方法
return false;
}
});
//解决数据加载不完的问题
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setHasFixedSize(true);
//解决数据加载完成后, 没有停留在顶部的问题
recyclerView.setFocusable(false);
recyclerView.layoutManager = object : LinearLayoutManager(context) {
//解决RecyclerView嵌套RecyclerView滑动卡顿的问题
//如果你的RecyclerView是水平滑动的话可以重写canScrollHorizontally方法
override fun canScrollVertically() = false
}
//解决数据加载不完的问题
recyclerView.isNestedScrollingEnabled = false
recyclerView.setHasFixedSize(true)
//解决数据加载完成后, 没有停留在顶部的问题
recyclerView.isFocusable = false
关于嵌套后滑动卡顿或者焦点之类的问题
使用了上面的方法还无法解决就把布局中的RecyclerView
外层的ScrollView
换成NestedScrollView
就可以解决了
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
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" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题
标签:加载 obj 也会 lin pre java otl 问题 enable
原文地址:https://www.cnblogs.com/xgjblog/p/9719626.html