显示更多/查看回收站视图中的所有项目 [关闭]
Posted
技术标签:
【中文标题】显示更多/查看回收站视图中的所有项目 [关闭]【英文标题】:Show more/View all items in a recyclerview [closed] 【发布时间】:2021-08-03 12:07:43 【问题描述】: 我正在实现一个Recyclerview
,它显示 3 个项目和一个按钮。
如果用户点击查看全部按钮,列表应该展开,如下图所示:
我创建了一个简单的Recyclerview
来显示列表项,但我很困惑如何实现查看全部功能。
【问题讨论】:
所以你的recyclerView 只包含“Social Accounts”(带查看全部的按钮)、“联系”(带查看全部的按钮)等?或者你的recyclerView怎么样?你的 recyclerView 项目怎么样?您需要可扩展的回收站视图吗? 所以你有 Item1(Instagram)、Item2(TikTok)、Item3(Twitter),最后一项是一个按钮(查看全部),不是吗? @Skizo-ozᴉʞS 是的。 【参考方案1】:在您获取详细信息并传递到列表的活动/片段中。做同样的事情
recyclerView.setHasFixedSize(false);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
if(modelList.size>3)
YourAdapter yourAdapter = new YourAdapter(modelList.subList(0,3));
recyclerView.setAdapter(yourAdapter);
viewAllBtn.setVisibilty(View.VISIBLE);
viewAllBtn.setOnClickListener(v->
YourAdapter yourAdapter = new YourAdapter(modelList);
recyclerView.setAdapter(yourAdapter);
viewAllBtn.setVisibilty(View.GONE);
);
else
YourAdapter yourAdapter = new YourAdapter(modelList);
recyclerView.setAdapter(yourAdapter);
viewAllBtn.setVisibilty(View.GONE);
这在我的情况下有效
【讨论】:
【参考方案2】:解决思路:
您可以将 viewAll-button 放在 RecyclerView 之外,但在 RecyclerView 所在的父级内部位于它的下方,以使逻辑更容易。 (有关更多信息,请参阅 cmets)
在您的适配器中创建一个名为“viewAll”的公共布尔值。
为 viewAllButton 设置一个点击监听器:
执行viewAllButton.setText(adapter.viewAll ? "View all" : "View less");
将adapter.viewAll
设置为!adapter.viewAll
调用recyclerView.requestLayout();
更新用户界面。
在您的getChildrenCount()
、return viewAll ? yourViewCount : 3;
。
【讨论】:
我仍然建议将按钮保留在适配器内,我看不出将其移出的意义。 @HenryTwist 我认为将其留在外面会更容易,因为如果你把它留在里面,第四个孩子可以是 viewAll 按钮或另一个按钮,在我看来这很难编程. 嗯,我认为这并不像你想象的那么难。如果项目是最后一个,它是按钮,否则不是。如果你想避免实现任何逻辑,你甚至可以使用ConcatAdapter
。以上是关于显示更多/查看回收站视图中的所有项目 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章