Android 使用分页更改recyclerview中项目的状态

Android 使用分页更改recyclerview中项目的状态,android,kotlin,android-recyclerview,pagination,state,Android,Kotlin,Android Recyclerview,Pagination,State,我已经用分页实现了recycler视图。在“我的列表”项目中,有与该项目类似或不同的集合的信息和收藏夹图标。设置like时,图标将被启用,否则将被禁用。它的工作正常,但当我滚动它再次显示禁用图标。我已经研究并发现了以下覆盖方法,我通常用于普通的回收器视图 @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int p

我已经用分页实现了recycler视图。在“我的列表”项目中,有与该项目类似或不同的集合的信息和收藏夹图标。设置like时,图标将被启用,否则将被禁用。它的工作正常,但当我滚动它再次显示禁用图标。我已经研究并发现了以下覆盖方法,我通常用于普通的回收器视图

@Override
public long getItemId(int position) {
            return position;
}

@Override
public int getItemViewType(int position) {
       return position;
}
但我的回收者视图是分页的,我使用了以下方法

override fun getItemId(position: Int): Long {
    return position.toLong()
}

override fun getItemViewType(position: Int): Int {
    return if (position == assistanceArrayList.size - 1 && isLoadingAdded) LOADING else ITEM
}

帮助我防止在滚动“回收器”视图时更改状态。

我在滚动滚动视图时找到了列表项更改状态的解决方案。我已经设置了recycler视图父视图的Nestedscrollview,并在设置适配器时添加了下面的一行

adapter!!.setHasStableIds(true)
在我的片段中,我添加了下面一行

ViewCompat.setNestedScrollingEnabled(mFragmentAssistanceBinding!!.recyclerViewAssistanceLog, false)

这个问题已经解决了。我希望它能帮助别人

在滚动滚动视图时,我找到了列表项状态变化的解决方案。我已经设置了recycler视图父视图的Nestedscrollview,并在设置适配器时添加了下面的一行

adapter!!.setHasStableIds(true)
在我的片段中,我添加了下面一行

ViewCompat.setNestedScrollingEnabled(mFragmentAssistanceBinding!!.recyclerViewAssistanceLog, false)
这个问题已经解决了。我希望它能帮助别人