有谁知道如何访问适配器imageView内部活动来隐藏视图。请指出任何例子。
我希望这对你有用。
通过使用SharedPreferences
,我们可以轻松地隐藏活动或片段的视图。
在SharedPreferences
中保存标志,即从活动中保持真实。
如果你正在使用Recyclerview
然后在onBindViewHolder
方法检查条件
if(flag==true){
holder.yourView.setVisibility(View.GONE);
}else{
holder.yourView.setVisibility(View.VISIBLE);
}
转到适配器的onBindViewHolder并获取imageview的代码和代码,如holder.mImgVw.setVisibility(View.GONE);
您不应该直接与ImageView交互,而是可以使用notifyItemChanged()
更新适配器中的ImageView状态。但是,您需要通过在模型数据中添加标志或使用SparseBooleanArray作为保存ImageView状态的机制来稍微修改适配器代码。
这里的例子如下:
public class Adapter ... {
private SparseBooleanArray mSelectedItems;
private List<YourModel> mItems;
public Adapter(List<YourModel> items) {
mItems = items;
mSelectedItems = new SparseBooleanArray();
}
...
public void onBindViewHolder(....) {
int itemPosition = viewHolder.getAdapterPosition();
YourModel item = items.get(itemPosition);
boolean visible = mSelectedItems.get(itemPosition);
viewHolder.imageView.setVisibility(visible? View.VISIBLE: View.GONE);
...
}
public void setItemVisibilityByPosition(int position, boolean visible) {
mSelectedItems.put(position, visible);
notifyItemChanged(position);
}
}
您可以使用以下方法更改图像可见性
// Assume the mAdapter is your Adapter
mAdapter.setItemVisibilityByPosition(5, true);