【发布时间】:2017-06-16 04:36:00
【问题描述】:
我在NestedScrollView 中添加了RecyclerView。基本上我希望 RecyclerView 与其他视图一起滚动。我面临的问题是,对于一小部分数据,它工作正常,但是对于大量数据(200 个条目),每当我启动活动时,它会冻结大约 3-5 秒然后加载。我删除了NestedScrollView,它工作正常,但它没有提供我想要的行为。
(有关额外信息,我正在从 SQLite 数据库加载数据。滚动没有问题,因为它很流畅。唯一的问题是活动冻结了一段时间)
<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">
<... Some other Views ...>
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
【问题讨论】:
-
试试
recyclerView.setNestedScrollingEnabled(false); -
是的,我试过了,它不起作用,正如我所说,滚动没有问题
-
请显示您的 java 代码,您正在从数据库中获取数据并将该数据填充到您的布局中。
-
数据库查询是在一个新的IO线程上执行的,数据是传给主线程的,然后是列表传给recycler适配器的,我说的时候没有问题我删除了嵌套的滚动视图!
-
问题是当你在嵌套滚动视图中膨胀回收器视图时,它开始为每个项目膨胀一个视图,所以如果你的回收器适配器中有 500 个项目,那么它将创建 500 个项目布局,这会导致突然无响应,我所做的是删除了嵌套滚动布局,没有找到任何解决方案可以使嵌套滚动视图在大量数据的情况下与回收器视图一起使用。
标签: java android android-recyclerview android-nestedscrollview