文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一文搞懂Android RecyclerView点击展开、折叠效果的实现代码

2024-04-02 19:55

关注

RecyclerView是什么

       RecycleView是Android5.0后谷歌推出的一个用于在有限的窗口中展示大量数据集的控件,位于support-v7包中。它可以实现与ListView和GridView一样的效果,提供了一种插拔式的体验,高度的解耦,异常的灵活,只需设置其提供的不同的LayoutManager,ItemAnimator和ItemDecoration,就能实现不同的效果。

RecyclerView的优点

   1、支持局部刷新。
   2、可以自定义item增删时的动画。
   3、能够实现item拖拽和侧滑删除等功能。
   4、默认已实现View的复用,而且回收机制更加完善。

实现效果

在这里插入图片描述

思路

我使用的是第三方适配器BaseRecyclerViewAdapterHelper

但是遇到一个问题
这个适配器2.0和3.0不兼容 而2.0版本 没有折叠效果这个组件 我用3.0版本 gradle一直依赖不了
怎么办?

2

只能寻找其他方法来实现 我想到的是在用两层 RecyclerView的办法
在第一次的item布局里嵌套第二次RecyclerView
觉得可行 就开始写代码 最终结果还可以优化 就是上面的样子 实现了点击折叠和展开的效果

代码

代码实现比较简单
唯一要说的就是通过一个Flag来更改折叠状态
在第一层的adapter中可以设置一个标记位


//默认是关闭
 private boolean isOpen = false;
 
 public boolean isOpen() {
        return isOpen;
    }

    public void setOpen(boolean open) {
        isOpen = open;
    }

然后在 convert方法中 来切换数据的状态


 if (isOpen) {
            mRecyclerView.setVisibility(View.VISIBLE);
            linearLayout.setVisibility(View.VISIBLE);
            view.setBackgroundResource(R.mipmap.icon_more_than_open);
        } else {
            mRecyclerView.setVisibility(View.GONE);
            linearLayout.setVisibility(View.GONE);
            view.setBackgroundResource(R.mipmap.icon_more_than);
        }

最后在数据展示的那个页面 调用Adapter里的折叠方法


 mAdapter.setOnItemClickListener((adapter, view, position) -> {
            if (mAdapter.isOpen()) {
                mAdapter.setOpen(false);
            } else {
                mAdapter.setOpen(true);
            }
            //这个是渲染数据后 刷新 不然看不到数据
            mAdapter.notifyDataSetChanged();
        });

最后提示
adapter里的布局 建议设置成 wrap_content


android:layout_width="match_parent"
  android:layout_height="wrap_content"

为什么呢?
如果设置了固定尺寸 他是没有那种折叠效果的 会占的空间比较大 数据多少 排版很难看

以上就是Android RecyclerView点击展开、折叠效果的实现方式的详细内容,更多关于Android RecyclerView点击展开折叠的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯