我正在尝试实施一个与RedBus应用程序非常相似的巴士座位预订应用程序。我在那里遇到了座位安排,我被击中了。
我真的需要你帮助实现这一目标。我尝试过使用Recycler View,但这并没有让我进入确切的布局。
我尝试过使用Recycler视图,我的布局就像,
但是,从redbud应用程序拍摄的实际屏幕是,
我已经浏览了git中可用的代码之一
https://github.com/TakeoffAndroid/SeatBookingRecyclerView
但是,使用上面的代码,我可以得到布局设计,但问题是,说如果有41个席位,但使用上面的git代码它将显示33个席位在屏幕上显示如,
非常感谢帮助。
代码段:
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);
}
}
答案 0 :(得分:1)
在您的示例中,您的recyclerview
有3 viewType
s - TYPE_EDGE, TYPE_CENTER, TYPE_EMPTY
,即座位有3种类型。如你的问题
说如果有41个席位,但使用上面的git代码就会显示33个席位
事实上这是预期的行为,因为您的recyclerview
由viewtype
- 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相比,行高几乎是两倍。