【发布时间】:2018-05-04 06:30:28
【问题描述】:
我有一个要在回收站视图中显示的数据列表,并且工作正常。现在我有另一个动态数据列表要显示在父回收器视图中。所以我尝试在父回收器视图中使用另一个回收器视图,但效果不佳。如果我对在另一个中使用 recycler-view 有一些想法会很好。提前致谢..!
我用一个例子来说明我的问题:
例如:我有一个父 recyclerView 和五个线性布局,我在 Linearlayout 内创建了一个子 recyclerView,可见性已消失。现在,当我单击第一个 Linearlayout 时,我将第一个 Linearlayout 的子 recyclerView 的可见性更改为 VISIBLE,并为其附加一个单独的视图,并为所有其他 Linearlayout 附加相同的概念。当我单击第一个、第二个、第三个和第四个 linearLayout 时,子 recyclerView 没有显示我传递给它的日期,所有这些第一个、第二个、第三个和第四个数据都累积并显示在第五个 linearLayout 内的最后一个(即)中.
这是我的父回收站代码:
class CardAdapter extends RecyclerView.Adapter<CardAdapter.MyViewHolder>
{
RecyclerView insideCardRecyclerView,recyclerView;
List<String> monthsWeek = new ArrayList<>();
List<String> dealers = new ArrayList<>();
List<String> dealersList = new ArrayList<>();
List<String> date = new ArrayList<>();
HashSet<String> dealersListHash = new HashSet<>();
public CardAdapter(List<String> monthsWeek,List<String> dealers,List<String> date)
{
this.monthsWeek = monthsWeek;
this.dealers = dealers;
this.date = date;
}
public class MyViewHolder extends RecyclerView.ViewHolder
{
ProgressBar progressBar;
RecyclerView recyclerView;
TextView period;
LinearLayout linearLayoutParent,linearLayoutCardDetails;
public MyViewHolder(View view)
{
super(view);
linearLayoutParent = (LinearLayout) view.findViewById(R.id.card_view_linear_parent_layout);
linearLayoutCardDetails = (LinearLayout) view.findViewById(R.id.linear_card_layout_details);
period = (TextView) view.findViewById(R.id.period_summary_graph_card);
insideCardRecyclerView = (RecyclerView) view.findViewById(R.id.summary_graph_card_view_recycler_view);
}
}
@Override
public CardAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View itemView = LayoutInflater.from(getActivity())
.inflate(R.layout.summary_card_view,parent,false);
recyclerView = (RecyclerView) parent;
return new CardAdapter.MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position)
{
holder.period.setText(monthsWeek.get(position));
holder.linearLayoutParent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
if(searchClick)
{
for (String date1 : date)
{
if(Objects.equals(date1,monthsWeek.get(position)))
{
Log.e("Summary123 date..///", date1);
dealersList.add(dealers.get(date.indexOf(date1)));
}
}
searchClick = false;
holder.linearLayoutCardDetails.setVisibility(View.VISIBLE);
dealersListHash.addAll(dealersList);
dealersList.clear();
dealersList.addAll(dealersListHash);
//if the condition is true i am attaching another recyclerview inside this.
cardAdapterList = new CardAdapterList(dealersList);
LinearLayoutManager mLayoutManager1 = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL,true);
mLayoutManager1.setReverseLayout(false);
insideCardRecyclerView.setLayoutManager(mLayoutManager1);
insideCardRecyclerView.setItemAnimator(new DefaultItemAnimator());
insideCardRecyclerView.setAdapter(cardAdapterList);
}
else
{
searchClick = true;
holder.linearLayoutCardDetails.setVisibility(View.GONE);
}
}
});
}
@Override
public int getItemCount() {
return monthsWeek.size();
}
}
【问题讨论】:
-
是我可以在 recyclerview 中填充我的列表的任何其他内容。
-
that is not working fine是什么意思@是什么问题? -
您可以使用可展开的列表视图。
标签: android android-recyclerview