我正在尝试实现一个公共汽车座位预订应用程序,与RedBus应用程序非常相似。我遇到了座位安排的问题,困扰着我。
我真的需要你的帮助来实现这一目标。我已经尝试使用RecyclerView,但那并不能使我获得完全正确的布局。
我已经尝试使用RecyclerView,我的布局如下:
然而,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);
}
}
viewType = TYPE_EMPTY
的座位)。 - JackymArraySeats.size()
是 41,它只会渲染座位直到 41,因此剩余的位置将不会被填充。 - Navneet KrishnamArraySeats.size() = 41
,正如Op在他的问题中所述。我的意思是,在他的屏幕截图中,包括空格,只有40个座位。 - JackynumOfColumns = 4;
的代码,因为它有5列(包括TYPE_EMPTY
)。实际上,该代码属于他的第一个截图,那里只有4列。 - Navneet Krishna