【发布时间】:2018-03-05 12:22:10
【问题描述】:
我有 3 种视图类型要显示在回收站视图中。
--------view type 1 ----------
--------view type 2 ----------
--------view type 2 ----------
--------view type 3 ----------
--------view type 3 ----------
--------view type 3 ----------
--------view type 3 ----------
--------view type 3 ----------
视图类型 1 是单个实例,其中视图类型 2 和 3 可以是未知数量的多个实例
现在,当我单击视图类型 1 时,我想切换隐藏/显示视图类型 2 的所有实例
为此,我正在尝试以下方法:
在主recyclerview适配器类中定义一个布尔变量
private boolean mShowsView;
然后在 viewtype1 上使用 onclick 我将其更改为 true 或 false
@Override
public PersonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardviewsearchsuggested, parent, false);
SearchSuggestRVAdapter.PersonViewHolder viewHolder = new SearchSuggestRVAdapter.PersonViewHolder(v);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mShowsView){
mShowsView = false;
}
else{
mShowsView = true;
}
notifyDataSetChanged();
}
return pvh;
}
然后我还把 viewtype2 的条件放在 onCreateviewholder 中
View v1 = inflater.inflate(R.layout.cardviewsearchsuggested, parent, false);
viewHolder = new PersonViewHolderSuggested(v1);
if(!mShowsView){
viewHolder.itemView.setVisibility(View.VISIBLE);
}
else{
viewHolder.itemView.setVisibility(View.GONE);
viewHolder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
}
点击viewtype1后mShowsView值切换但不刷新viewtype2
【问题讨论】:
标签: android android-recyclerview