【问题标题】:Android: How to make a special recyclerview layoutAndroid:如何制作特殊的recyclerview布局
【发布时间】:2019-09-14 01:53:25
【问题描述】:

我将直接描述我的问题。 我有一个公共汽车应用程序,在某些布局中我需要显示一个公共汽车座位,以便用户可以选择一个,并且显示应该遵循公共汽车设计。 作为后端开发人员,我带来了数据,所以当数据到来时是这样的:

客户想要展示总线设计(最多有 10 个设计),所以前端开发人员这样做了(我不喜欢它,因为数据已损坏):

很明显数据改变了,他是用这段代码(在适配器内部)做的:

        if (position == 2 || position == 7 || position == 12 || position == 17 || position == 22 || position == 27 || position == 32 || position == 37 || position == 42 || position == 47) {
        holder.binding.seatNumber.setText("");
        holder.binding.seatNumber.setBackgroundColor(Color.WHITE);
        index++;
    } else {
        holder.binding.seatNumber.setText(seatList.get(position - index).getSeatNumber() + "");
        if (seatList.get(position).isBooked()) {
            holder.binding.seatNumber.setBackgroundResource(R.drawable.seat_bg_booked);
            holder.binding.seatNumber.setTextColor(Color.WHITE);
        }
    }

这显然是错误的方式,它是如此的随机和混乱,所以我正在搜索这个,我们如何用真实的数据来实现这个显示? 考虑要显示的第一个布局,有 45 个座位​​:

第 0 列和第 1 列 = 20 个席位

第 2 栏为空

第 3 列和第 4 列 = 20 个席位

最后 5 个座位​​占据最后一排。

如果您需要更多解释,请告诉我任何解决方案或建议。 谢谢。

【问题讨论】:

    标签: android android-recyclerview frontend


    【解决方案1】:

    在适配器类中更改 if 条件

    holder.binding.seatNumber.setText(seatList.get(position - index).getSeatNumber() + "");
            if (seatList.get(position - index).isBooked()) {
                holder.binding.seatNumber.setBackgroundResource(R.drawable.seat_bg_booked);
                    holder.binding.seatNumber.setTextColor(Color.WHITE);
                }
    

    【讨论】:

      【解决方案2】:

      您可以通过在适配器中的布局中添加两种类型来实现此目的。要了解如何在recyclerview 文章中使用两种不同的布局是here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-09
        • 2011-09-01
        相关资源
        最近更新 更多