不要回收 RecyclerView 中的特定视图类型

Don't recycle specific view type in RecyclerView

我有一个正在重用视图的回收视图,我的问题是一个 viewholder 包含一个 ViewPager,如果 recyclerview 的适配器重用 viewholder 膨胀的视图,则 viewpager 会发生异常。 但是,onCreateViewHolder 方法仅在第一次被调用。我怎样才能避免这种行为并实现 onCreateViewHolder 可以被多次调用?

提前致谢

使用recyclerView.getRecycledViewPool().setMaxRecycledViews(YOUR_VIEW_TYPE, 0);这将禁用指定视图类型的回收

这就是 getItemViewType 覆盖的用途。

如果您将 getItemViewType 覆盖为 return ViewPager 位置的不同值,RecyclerView 将使用它来知道何时应该回收视图。