【发布时间】:2020-08-18 19:38:58
【问题描述】:
我有一个包含 10 个项目的回收站视图。我滚动到页面底部,现在我尝试调用notifyItemChanged(pos) 来获取自向下滚动以来不可见的第一个项目。当我调用它时,它不会为第一项触发onBindViewholder()。所以简而言之,我的问题是当我调用notifyItemChanged(pos) 的位置未显示在屏幕上时,它不会触发onBindViewHolder() 吗?
这是我的适配器代码
@SuppressLint("NewApi")
@Override
public void onBindViewHolder(@NonNull final UserTasksViewHolder holder, final int position) {
if (usertasks != null) {
final UserSessionTasksEntity current = usertasks.get(position);
viewPos = prefs.getString(view_position, "");
holder.taskCode.setText(current.getTaskCode());
holder.taskName.setText(current.getTaskName());
}
@Override
public int getItemCount() {
if (usertasks != null)
return usertasks.size();
return 0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
【问题讨论】:
-
你是通过适配器类更新位置
-
我从片段类调用 notifyItemChanged()。
-
从回收站视图适配器执行它,它会工作
-
这可能是因为您没有正确设置 onItemCount 函数。 OnBindViewHolder 在列表大小的每个项目中调用一次。发布您的适配器代码
-
@MateoHervas 请看一下我的适配器代码
标签: android android-recyclerview