android - RecyclerView里面的RecyclerView不流畅

标签 android android-recyclerview

RecyclerView 中有一些关于 RecyclerView 的主题,但我发现其中大部分不适合我的情况。我的情况是我有一个 RecyclerView(垂直线性布局管理)显示一个 CardView 列表,每个 Cardview 包含一个内部 RecyclerView(水平线性布局管理)。问题全在于滚动时的性能,它一点也不流畅。我注意到如果我评论了内部 Recyclerview 的 setAdapter,滚动变得平滑,但我让 CardView 没有更新新列表。代码与此类似:

onBindViewHolder...{
    holder.innerRecycler.setAdapter(new InnerAdapter((data));
    // comment that line make the outer recyclerview smoothly but the CardView data not updated thanks to the view recycling.
}

我知道在可 ScrollView 中使用可 ScrollView 不是一个好主意,但我看不到任何其他选择。以前有人面对过这种布局吗?谢谢。

更新(添加更多代码)。

// init outer recyclerview
mOuterRecyclerView = (RecyclerView) findViewById(...);
mOuterRecyclerView.setLayoutManagement(new LinearLayoutManagement(this));
mOuterRecyclerView.setHasFixedSize(true);
mOuterRecyclerView.setAdapter(new OuterAdapter(dataList));

// The adapter class for the outer one
onBindViewHolder(...){
    final dataItem = mItems.get(position);
    holder.innerRecycler.setAdapter(new InnerAdapter(dataItem.getList()));
}

// the holder for the outer
class MyHolder extends ViewHolder{
    RecyclerView innerRecycler;
    public MyHolder(View view){
        super(..);
        innerRecycler = findViewById(...);
    }
}
// the adapter for the inner
onBindViewHolder(...){
    final dataItem = mItems.get(pos);
    // async loading
    holder.tvTitle.setText(dataItem.getTitle);
}

布局非常简单,所以我没有在这里发布完整的代码。 :)

最佳答案

@Paul 我有同样的要求,下面的技巧奏效了。 将父 recyclerview 放在 NestedScrollView 和你的 onCreate 方法中, 设置。

mRecyclerView.setHasFixedSize(true);
mRecyclerView.setNestedScrollingEnabled(false);

这可以防止父 recyclerview 的滚动,并且滚动变得绝对平滑。

关于android - RecyclerView里面的RecyclerView不流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218397/

相关文章:

java - Android - MPAndroidChart - 折线图不显示线

android - 使用 Google Maps v2 膨胀 SupportMapFragment 会导致 ClassNotFoundException

java - 无法在 android N 中获取范围内的路由器

java - 为什么 RecyclerView 的 onBindViewHolder 中的 payloads 是一个列表?

android - ItemTouchHelper.SimpleCallback onMove() 未被触发

android - Android 平台中的自定义堆大小?

android - 在我的应用程序中获取不包含 webview 的用户代理

android - 自定义 RecyclerViewAdapter 中的 MapView

android - 对 recyclerview 触摸事件没有链式 react

java - 如何将本地可绘制图像传递给模型类?