【发布时间】:2021-10-03 19:56:36
【问题描述】:
我有一个recyclerView. One of recyclerView 项目有一个onClick 方法。在这个方法中,我setVisibility 为一个项目可见(默认不存在),也获取位置并将其添加到arrayList。
点击:
public void onClickImageView(ImageView imageView, int position) {
imageView.setVisibility(View.VISIBLE);
positionArrayList.add(position);
}
在我去另一个活动之前,我想将 ImageView 可见性重置为默认值(消失),所以我使用接口将 positionArrayList 发送到 recyclerView 活动以按位置获取视图并重置 ImageViews默认。
界面:
public interface RecyclerViewMainActivityImp {
void resetImageViewToDefault(ArrayList<Integer> positionArrayList);
}
我在适配器中使用接口方法的地方:
public void OnClickNextActivity() {
Intent intent = new Intent();
intent.setClass(context, ClassActivity.class);
context.startActivity(intent);
recyclerViewInterface.resetImageViewToDefault(positionArrayList);
}
活动:
@Override
public void resetImageViewToDefault(ArrayList<Integer> positionArrayList) {
for (int position = 0; position < positionArrayList.size(); position++) {
View row = binding.recyclerView.getLayoutManager().findViewByPosition(positionArrayList.get(position));
ImageView imageView = row.findViewById(R.id.imageView);
imageView.setVisibility(View.GONE);
}
}
当我滚动 recyclerView 时,如果某些项目不再在视图中,它们的视图将变为空,因此 positionArrayList 中的某些位置不再具有它们的视图。
我的问题是一些视图在滚动后为空,我不知道如何访问它们。
我在谷歌上搜索并找到了一些解决方案,但我无法解决我的问题
注意:我用过data binding
【问题讨论】:
-
adapter.notifyDataSetChanged()
-
@Pouria Hemati 不起作用
-
我能想到的唯一方法是使用Binding Adapters 来控制可见性
-
你能设置你的适配器代码吗?
-
@Amjad Alwareh 你是什么意思?
标签: android android-recyclerview data-binding android-adapter android-databinding