用RecyclerView的瀑布流布局实现表格展示

前段时间,收到一个这样的需求,需要实现类似于下图所示的表格,展示一些表格数据。这里写图片描述

刚收到这个需求的时候,想的是下面的方案:首先用GridView把表格中的每一项都展示出来,然后再把左边内容相同的item进行合并,不过GridView似乎没有合并的功能,这个方案就被pass掉了。后来就想到用RecyclerView的瀑布流布局来实现这个需求,因为瀑布流布局可以包含不同高度的item,我的大体思路是这样:假设一个单项item的高度为height,则组合项item的高度为n*height+(n-1)*dividerHeight(n为组合项所包含的行数),在定义数据集的时候将每一个item所包含的行数n传入adapter,然后在adapter里通过n产生不同的高度,设置给View即可。

  • Activity中RecyclerView的初始化代码
    private void init() {
        mData.clear();
        for (int resId : mTitleST) { //表头数据
            mData.add(new ElePriceTableModel(getString(resId), -1));
        }
        mData.add(new ElePriceTableModel("1~6月", 4));
        mData.add(new ElePriceTableModel("0~12", 2));
        mData.add(new ElePriceTableModel("0~10", 1));
        mData.add(new ElePriceTableModel("0.92", 1, true));
        mData.add(new ElePriceTableModel("10~100", 1));
        mData.add(new ElePriceTableModel("0.83", 1, true));
        mData.add(new ElePriceTableModel("12~24", 2));
        mData.add(new ElePriceTableModel("0~10", 1));
        mData.add(new ElePriceTableModel("0.99", 1, true));
        mData.add(new ElePriceTableModel("10~100", 1));
        mData.add(new ElePriceTableModel("1.12", 1, true));
        mData.add(new ElePriceTableModel("7~12月", 4));
        mData.add(new ElePriceTableModel("0~12", 2));
        mData.add(new ElePriceTableModel("0~10", 1));
        mData.add(
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值