【问题标题】:Use of methods getItemViewType and getItemId of Recycler viewRecycler视图的getItemViewType和getItemId方法的使用
【发布时间】:2019-07-22 10:32:35
【问题描述】:

我遇到了一个问题:当我在回收站视图中单击单个项目的复选框时,其他项目的复选框也被选中....但是当我覆盖这两种方法并用它恢复位置时,问题就解决了.... 所以我的问题是他们是如何解决我的问题的???

已经知道android文档中写了什么。

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

@Override
public int getItemViewType(int position) {
    return position;
}

【问题讨论】:

  • 他们实际上是通过传递列表中的位置来判断点击了哪个项目
  • getItemId 必须返回一个唯一值
  • 奇怪,如果其他检查 ViewHolder,您是否添加了?因为只用'if'是不够的
  • 我认为通知先前选择的元素也是必要的,如果没有的话
  • 当你想在adapter中定义HeaderView和ChildView时,你可以使用getItemViewType。其中getItemId是你的单项在adapter中的唯一id。

标签: android android-recyclerview


【解决方案1】:

getItemViewType() 主要用于当你想根据你的位置显示不同类型的视图时。

假设你有一个聊天适配器,发送者用户聊天应该在右边,而接收者用户聊天应该在左边。在这种情况下,您可以使用 getItemViewType(根据用户 id,您可以显示不同的视图)

getItemId() :当我们尝试为特定项目执行特定任务时,我们通常使用它。对于 getItemId 你可以检查这个。 What is the intent of the methods getItem and getItemId in the Android class BaseAdapter?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多