需求如图:金刚区水平滚动带滚动条,行数列数可设置,要求第一页数据呈Z字排序,第二页从上到下从左到右排序依次展示(图为2行4列)
鉴于后台为整合多端数据,现接口仅提供一个升序排序的列表,由前端重新排序来展示。
android端选择使用recyclerview控件实现,数据重新排序如下:
/** * @param totalList 要排序的数据 * @param columnCount 列数 * @param rowCount 行数 */ private static void sortList(List<String> totalList, int columnCount, int rowCount) { List<String> tempData = new ArrayList<>(); tempData.addAll(totalList); try { if (columnCount != 1) { int[] indexAdd = new int[columnCount]; for (int i = 0; i < columnCount; i++) { indexAdd[i] = 0; } for (int i = 0; i < columnCount * rowCount; i++) { int result = i % columnCount; totalList.set(i, tempData.get(rowCount * result + indexAdd[result])); int index = indexAdd[result] + 1; indexAdd[result] = index; } } } catch (Exception e) { e.printStack