如何访问 recyclerview 中的所有 cardviews,点击特定 cardview 的项目
How to access all cardviews in a recyclerview, on item click of a particular cardview
我有一个主回收视图,它显示我的主卡片视图。现在这个主要的 cardview 里面有一个 child recyclerview,里面有 child cardview。
现在,当我单击任何主卡片视图时,child 回收视图和 child 卡片视图变得可见。
如果我再次单击该主卡片视图,child 回收视图将变得不可见。
现在发生的事情是,如果我单击一个主车视图,那么它的 child recyclerview 将可见。
现在如果我点击另一个主要的卡片视图,那么它的 child recyclerview 就会出现。像这样
我想要的是,如果我单击另一个主卡片视图,那么,如果任何其他 child 视图可见,那么它应该变得不可见。换句话说,我点击的主卡片视图的 child rewcyclerview 应该只打开。所有其他 child recyclerviews 应该是不可见的/关闭的。
现在我想要的是一种访问主要回收视图中所有主要汽车视图的方法,当我单击特定的主要卡片视图时,我可以使所有这些主要卡片视图的 child 回收视图不可见。
希望我表达清楚了。
我只想在这样的时间打开一个 child视图..
这是主 Recyclerview holder 适配器的 onBindViewHolder
@Override
public void onBindViewHolder(@NonNull final MainHolder holder, final int position) {
MSeasonTanks mSeasonTanks=mSTankList.get(position);
MoultingDataEntry moultingDataEntry=moultList.get(position);
holder.textViewOne.setText("Tank Number : "+mSeasonTanks.getTName());
ChildRVAdapter childRVAdapter=new ChildRVAdapter(moultingDataEntry,mSeasonTanks.getTID(),holder);
holder.childRecyclerView.setLayoutManager(new LinearLayoutManager(context));
holder.imageViewDirection.setImageResource(R.drawable.ic_expand);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(holder.childRecyclerView.getVisibility()==View.VISIBLE){
holder.childRecyclerView.setVisibility(View.GONE);
holder.imageViewDirection.setImageResource(R.drawable.ic_expand);
}else{
holder.childRecyclerView.setVisibility(View.VISIBLE);
holder.imageViewDirection.setImageResource(R.drawable.ic_collapse);
}
}
});
holder.childRecyclerView.setAdapter(childRVAdapter);
}
所以在主要的 carview onClick 方法上访问所有主要的 cardviews,这样我就可以让他们的 child recyclerviews 在打开时不可见。
提前致谢..
我会建议的是。
-> 假设您有主要 Recyclerview 的数据,例如
MainRecyclerItemData,它应该有一个布尔标志,isExpanded
-> isExpanded = true(内部 Recyclerview 可见)
-> isExpanded = false(隐藏内部 Recyclerview)
-> 现在,当用户单击主回收器项目时,通过方法接口将单击项目的 MainRecyclerItemData 的 ID 传递给您的 activity (OuterItemClicked(String id)).
-> 现在循环 wholelist,并且对于 wholelist make isExpanded = false 除了具有 clcked id 的项目(因为它使它成为 true)。
-> 现在调用 adapter.notifydatasetchanged()
//In onBindViewHolder() you should have code to handle isExpanded flag,
if(isExpanded){
// Show inner recyclerview
}else{
// Hide inner recyclerview
}
我有一个主回收视图,它显示我的主卡片视图。现在这个主要的 cardview 里面有一个 child recyclerview,里面有 child cardview。 现在,当我单击任何主卡片视图时,child 回收视图和 child 卡片视图变得可见。 如果我再次单击该主卡片视图,child 回收视图将变得不可见。
现在发生的事情是,如果我单击一个主车视图,那么它的 child recyclerview 将可见。 现在如果我点击另一个主要的卡片视图,那么它的 child recyclerview 就会出现。像这样
我想要的是,如果我单击另一个主卡片视图,那么,如果任何其他 child 视图可见,那么它应该变得不可见。换句话说,我点击的主卡片视图的 child rewcyclerview 应该只打开。所有其他 child recyclerviews 应该是不可见的/关闭的。
现在我想要的是一种访问主要回收视图中所有主要汽车视图的方法,当我单击特定的主要卡片视图时,我可以使所有这些主要卡片视图的 child 回收视图不可见。
希望我表达清楚了。
我只想在这样的时间打开一个 child视图..
这是主 Recyclerview holder 适配器的 onBindViewHolder
@Override
public void onBindViewHolder(@NonNull final MainHolder holder, final int position) {
MSeasonTanks mSeasonTanks=mSTankList.get(position);
MoultingDataEntry moultingDataEntry=moultList.get(position);
holder.textViewOne.setText("Tank Number : "+mSeasonTanks.getTName());
ChildRVAdapter childRVAdapter=new ChildRVAdapter(moultingDataEntry,mSeasonTanks.getTID(),holder);
holder.childRecyclerView.setLayoutManager(new LinearLayoutManager(context));
holder.imageViewDirection.setImageResource(R.drawable.ic_expand);
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(holder.childRecyclerView.getVisibility()==View.VISIBLE){
holder.childRecyclerView.setVisibility(View.GONE);
holder.imageViewDirection.setImageResource(R.drawable.ic_expand);
}else{
holder.childRecyclerView.setVisibility(View.VISIBLE);
holder.imageViewDirection.setImageResource(R.drawable.ic_collapse);
}
}
});
holder.childRecyclerView.setAdapter(childRVAdapter);
}
所以在主要的 carview onClick 方法上访问所有主要的 cardviews,这样我就可以让他们的 child recyclerviews 在打开时不可见。
提前致谢..
我会建议的是。
-> 假设您有主要 Recyclerview 的数据,例如 MainRecyclerItemData,它应该有一个布尔标志,isExpanded
-> isExpanded = true(内部 Recyclerview 可见)
-> isExpanded = false(隐藏内部 Recyclerview)
-> 现在,当用户单击主回收器项目时,通过方法接口将单击项目的 MainRecyclerItemData 的 ID 传递给您的 activity (OuterItemClicked(String id)).
-> 现在循环 wholelist,并且对于 wholelist make isExpanded = false 除了具有 clcked id 的项目(因为它使它成为 true)。
-> 现在调用 adapter.notifydatasetchanged()
//In onBindViewHolder() you should have code to handle isExpanded flag,
if(isExpanded){
// Show inner recyclerview
}else{
// Hide inner recyclerview
}