Android 嵌套滚动视图+;RecyclerView慢速加载

Android 嵌套滚动视图+;RecyclerView慢速加载,android,android-recyclerview,android-nestedscrollview,Android,Android Recyclerview,Android Nestedscrollview,我必须告诉你的第一件事是,有太多类似于这个问题的问题。因此,请在将其标记为重复之前分析一次 我有一个嵌套的滚动视图,其中放置了两个回收器视图。第一个是水平滚动。第二个是垂直滚动 这些功能运行良好。现在的问题是第一次加载需要20秒。因此呼叫了ANR服务。一旦加载,滚动也是完美的 RestarantListAdapter restarantListAdapter = new RestarantListAdapter(activity, restaurants_1);

我必须告诉你的第一件事是,有太多类似于这个问题的问题。因此,请在将其标记为重复之前分析一次

我有一个嵌套的滚动视图,其中放置了两个回收器视图。第一个是水平滚动。第二个是垂直滚动

这些功能运行良好。现在的问题是第一次加载需要20秒。因此呼叫了ANR服务。一旦加载,滚动也是完美的

RestarantListAdapter restarantListAdapter = new RestarantListAdapter(activity, restaurants_1);
                    LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(activity, RecyclerView.VERTICAL, false);
                    binding.rvRestaurants.setLayoutManager(linearLayoutManager1);
                    binding.rvRestaurants.setAdapter(restarantListAdapter);
binding.rvRestaurants.setNestedScrollingEnabled(false)


我试过上面的代码。是否有处理首次装载问题的其他可能性

当您在NestedScrollView中使用RecyclerView时,会立即绘制所有项目(您可以检查调用onBindViewHolder的次数)。因此,您基本上失去了RecyclerView对性能的所有改进,而得到了类似ListView的东西。因此,如果您真的不必在NestedScrollView中使用RecyclerView,请不要这样做。

确实需要NestedScrollView中的RecyclerView。如何处理这个问题。如果NestedScrollView中只有这两个RecyclerViews,我会尝试将水平视图放在垂直视图中作为一行(不同的视图类型),并删除这个NestedScrollView。这将大大提高性能。我也没有其他的观点。所以我看到的唯一可能是分页。不要在onceListView加载所有数据,它也会回收视图。API只是没有那么好用和可扩展。你是在获得数据后设置适配器吗?尽快设置适配器,然后添加数据。另外,请尝试添加前10个元素,然后用其余元素更新适配器。不要使用NestedScrollView,请使用多个视图类型(getItemViewType)@EpicPandaForce不仅recycler还有一些其他视图。@cutiko你能分享一些例子吗?你的其他视图可以是使用不同项目类型的RecyclerView的一部分。
ViewCompat.setNestedScrollingEnabled(binding.rvRestaurants, false);