我有一个清单,例如20件。我希望能够像这样加载它们

1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
10 20


我正在使用RecyclerViewGridLayoutManager
使用GridLayoutManager(context, 2),它按以下方式加载项目

1 2
3 4
5 6
7 8
....


这不是我想要的输出

最佳答案

实现此目的的最简单方法是根据所需顺序对ArrayList进行排序,将您的arraylist传递给RearrangeTheArrayList函数,以获取新的ArrayList并将其传递给回收站视图Adapter,以实现上述顺序。

 public ArrayList<Integer> rearrangeTheArrayList(ArrayList<Integer> integerArrayList) {
    ArrayList<Integer> resultArrayList = new ArrayList<>();
    int halfLength = 0;
    if (integerArrayList.size() % 2 == 1) {
        halfLength = (integerArrayList.size() / 2) + 1;
    } else {
        halfLength = integerArrayList.size() / 2;
    }

    for (int i = 0; i < halfLength; i++) {
        resultArrayList.add(integerArrayList.get(i));
        if ( (i + halfLength)<(integerArrayList.size() )) {
            resultArrayList.add(integerArrayList.get(i + halfLength));
        }
    }
    return resultArrayList;
}

08-18 01:37