diadia

興味があることをやってみる。自分のメモを残しておきます。

RecyclerViewでスクロールダウンしてから上に戻ると表示がおかしくなる件

リサイクラービューで上から下にスクロールする時には適切に表示されているのに、 一度下までスクロールして上に戻ると、適切に表示されていたものが変な状態で表示される件に遭遇した。

具体的に自分のケースでは、if文に合致したあるアイテムはグレースケールで画像を表示されるのに下までスクロールして上げてみると別のアイテムがグレースケールの画像になっていた。

コレについてはAdapterに

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

    override fun getItemViewType(position: Int): Int {
        //return super.getItemViewType(position)
        return position
    }

コレを追加することで挙動を適正に戻すことができた。理由はドキュメントにあると思うので時間のある時にじっくり調べてみたい。

自分と同じケースに陥ってしまった場合の対処に関する資料

java - RecyclerView messed up data when scrolling - Stack Overflow