Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在recyclerview中显示更多/查看所有项目 我正在实现一个Recyclerview,它显示3个项目和一个按钮。 如果用户点击查看列表的所有按钮,则列表应展开,如下图所示: 我创建了一个简单的Recyclerview,它显示列表项,但我很困惑,如何实现查看所有功能。_Java_Android_Android Recyclerview_Adapter - Fatal编程技术网

Java 在recyclerview中显示更多/查看所有项目 我正在实现一个Recyclerview,它显示3个项目和一个按钮。 如果用户点击查看列表的所有按钮,则列表应展开,如下图所示: 我创建了一个简单的Recyclerview,它显示列表项,但我很困惑,如何实现查看所有功能。

Java 在recyclerview中显示更多/查看所有项目 我正在实现一个Recyclerview,它显示3个项目和一个按钮。 如果用户点击查看列表的所有按钮,则列表应展开,如下图所示: 我创建了一个简单的Recyclerview,它显示列表项,但我很困惑,如何实现查看所有功能。,java,android,android-recyclerview,adapter,Java,Android,Android Recyclerview,Adapter,在活动/片段中获取详细信息并传递到列表中。照做 这在我的案例中起了作用解决方案理念: 您可以将viewAll按钮放在RecyclerView的外部,但在其下方,您的RecyclerView位于父级的内部,以简化逻辑。有关更多信息,请参阅评论 在适配器中创建名为viewAll的公共布尔值 为viewAllButton设置一个单击侦听器: 执行viewAllButton.setTextadapter.viewAll?查看全部:查看较少; 将adapter.viewAll设置为!adapter.vie

在活动/片段中获取详细信息并传递到列表中。照做

这在我的案例中起了作用

解决方案理念:

您可以将viewAll按钮放在RecyclerView的外部,但在其下方,您的RecyclerView位于父级的内部,以简化逻辑。有关更多信息,请参阅评论

在适配器中创建名为viewAll的公共布尔值

为viewAllButton设置一个单击侦听器:

执行viewAllButton.setTextadapter.viewAll?查看全部:查看较少; 将adapter.viewAll设置为!adapter.viewAll 调用recyclerView.requestLayout;更新用户界面。 在getChildrenCount中,是否返回viewAll?yourViewCount:3


所以你的recyclerView只包含查看全部的社交帐户按钮,查看全部的联系人按钮,等等?或者你的回收视图怎么样?你的recyclerView产品怎么样?你需要一个可扩展的回收器视图?所以你有Item1Instagram、Item2TikTok、Item3Twitter,最后一项是按钮视图All,no?@Skizo ozᴉʞ是的。我仍然建议将按钮放在适配器内,我看不出将其移出的意义。@HenryTwist我认为将其移出会更容易,因为如果将其留在,第四个孩子可以是viewAll按钮或其他按钮,在我看来,这很难编程。我不认为这真的像你想象的那么难。如果项目是最后一个,则它是按钮,否则它不是。如果希望避免实现任何逻辑,甚至可以使用ConcatAdapter。
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);
    }