Как вы выровняете сетку горизонтально, используя переработчик? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь отцентрировать разметку сетки, используя представление переработчика.

Код, приведенный ниже, - это то, что я пытался сделать, но с этим не справился, но не совсем понял, как это работает.

Значки показывают что-то похожее на приведенное ниже.

  1. i ..i
  2. i..i..i
  3. i..i..i

Я хочу

  1. .. ii
  2. i..i..i
  3. i..i..i
 GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 6, RecyclerView.VERTICAL, true);
        final int totalSize = Cards.size();
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int span;
                span = totalSize % 3;
                if (totalSize < 3) {
                    return 6;
                } else if (span == 0 || (position <= ((totalSize - 1) - span))) {
                    return 2;
                } else if (span == 1) {
                    return 6;
                } else {
                    return 3;
                }
            }
        });
        recyclerView.setLayoutManager(gridLayoutManager);

1 Ответ

0 голосов
/ 08 мая 2019

Целое число, которое вы возвращаете в getSpanSize, указывает количество столбцов ширины, которое должна занимать определенная ячейка.Исходя из вашего кода, вам кажется, что большинство элементов должно занимать треть ширины макета

     (position <= ((totalSize - 1) - span))

Этот код возвращает значение true для большинства случаев, за исключением последних нескольких ячеек.Я думаю, что код, который вы написали, имеет недостатки, и я не могу понять, что именно вам нужно.Если у вас есть фотография, которой вы можете поделиться, это очень поможет получить помощь для вашего решения.

...