总线座位安排与RedBus,Android相同

时间:2018-01-20 04:24:54

标签: android android-recyclerview

我正在尝试实施一个与RedBus应用程序非常相似的巴士座位预订应用程序。我在那里遇到了座位安排,我被击中了。

我真的需要你帮助实现这一目标。我尝试过使用Recycler View,但这并没有让我进入确切的布局。

我尝试过使用Recycler视图,我的布局就像,

enter image description here

但是,从redbud应用程序拍摄的实际屏幕是,

enter image description here

我已经浏览了git中可用的代码之一

https://github.com/TakeoffAndroid/SeatBookingRecyclerView

但是,使用上面的代码,我可以得到布局设计,但问题是,说如果有41个席位,但使用上面的git代码它将显示33个席位在屏幕上显示如,

enter image description here

非常感谢帮助。

代码段:

     numOfColumns = 4;
     mArrayBusSeats = new ArrayList<>();
    for (int i = 0; i < mArraySeats.size(); i++) {
                if (i % numOfColumns == 0 || i % numOfColumns == (numOfColumns - 1)) {
                    BusLayoutModel model = mArraySeats.get(i);
                    model.setSeatType(AbstractItem.TYPE_EDGE);
                    mArrayBusSeats.add(model);
                } else if (i % numOfColumns == 1 || i % numOfColumns == (numOfColumns - 2)) {
                    BusLayoutModel model = mArraySeats.get(i);
                    model.setSeatType(AbstractItem.TYPE_CENTER);
                    mArrayBusSeats.add(model);
                } else {
                    BusLayoutModel model = new BusLayoutModel();
                    model.setSeatType(AbstractItem.TYPE_EMPTY);
                    mArrayBusSeats.add(model);
                }
            }

3 个答案:

答案 0 :(得分:1)

在您的示例中,您的recyclerview有3 viewType s - TYPE_EDGE, TYPE_CENTER, TYPE_EMPTY ,即座位有3种类型。如你的问题

  

说如果有41个席位,但使用上面的git代码就会显示33个席位

事实上这是预期的行为,因为您的recyclerviewviewtype - TYPE_EMPTY 组成,后者会打印一个空视图。因此,如果您提供41 seats,则只有33个可见,因为其他座位的类型为 TYPE_EMPTY 。如果您计算recyclerview中的空位,那么您可以看到总数将为41。

答案 1 :(得分:0)

您是否尝试过第5列的编号?

我没有使用该库但是当我检查它时,我想我应该这样做

var num = 1517778188788; // long number
var str = num.toString(); //convert number to string
var result = str.substring(0,6)  // cut six first character
result = parseInt(result); // convert it to a number

答案 2 :(得分:0)

在您的Recycler View实现中尝试减少行高,与redbus相比,行高几乎是两倍。