显示更多/查看回收站视图中的所有项目 [关闭]

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

以上是关于显示更多/查看回收站视图中的所有项目 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从服务器加载回收站视图中的更多数据?

如何添加静态项目,例如“添加新联系人”,始终作为回收站视图的第一项? [关闭]

线性布局未显示在回收站视图下方

在回收站视图中显示不同大小的多个图像

高级用户访问 Sitecore 回收站

回收站视图项目中未显示分隔线