其他分享
首页 > 其他分享> > 在RecyclerView中的android – setHasStableIDs(true)

在RecyclerView中的android – setHasStableIDs(true)

作者:互联网

我是android的新手,当我点击RecyclerView中的一个项目时数据集发生了变化,位置与SQLite中的ID不匹配时,我遇到了困难.我知道我们可以通过使用’setHasStableID’获得唯一ID但我很小混淆了我需要在哪里设置这个’setHasStableId(true)’条件?这是如何运作的?

解决方法:

setHasStableId(true)将应用于RecylerView的适配器.

adapter.setHasStableId(true);

此外,为了使其生效,您必须覆盖getItemId(int position),以返回物品位置的已识别长度.我们需要确保没有具有相同返回ID的不同项目数据.
id可以是数据库中的id,对于每个项目都是唯一的,并且不会在整个过程中进行更改.

//inside the adapter class
@Override
public long getItemId(int position) {
    return itemList.get(position).getId();
}

这将减少数据集通知的闪烁效果,其中仅修改具有更改的项目.

最重要的是它会在项目位置变化上添加很酷的动画!

标签:onitemclicklistener,android,android-recyclerview,listview
来源: https://codeday.me/bug/20190823/1700272.html