适配器更新时如何更新selectionTracker?

时间:2020-10-24 15:59:06

标签: android kotlin android-recyclerview

我已经在我的recyclerView中实现了一个跟踪器,并且工作正常。 我的问题是,当我向回收站中添加一些物品甚至更新整个适配器时,跟踪器将无法工作。

崩溃超出了从dataArray返回key的范围,该数据在创建ChatItemKeyProvider时传递给SelectionTracker

getKey的代码是这样的:

    @Nullable
override fun getKey(i: Int): String {
    return mPokemonList[i]!!._id
}

到目前为止我已经尝试过的:

每次我向适配器添加一些数据时,我将适配器中的跟踪器设置为null,然后再次更新跟踪器,但是仍然崩溃。示例代码如下:

                tracker = null
            chatAdapter.setTracker(null)
            tracker = SelectionTracker.Builder(
                chatId,
                chatRecycler,
                ChatItemKeyProvider(newResult, myUserId),
                ChatItemDetailsLookup(chatRecycler),
                StorageStrategy.createStringStorage()
            ).withSelectionPredicate(
                SelectionPredicates.createSelectAnything()
            ).build()
            chatAdapter.setTracker(tracker)

我的问题是如何在更新数据时更新跟踪器?

0 个答案:

没有答案