2011-01-06 1 views

ответ

0

Уверен, что это будет возможно. GridView основан на ArrayAdapter, который имеет только 1 размер для элементов. Как бы вы расположили их в представлении, которое может быть расширено как по вертикали, так и по горизонтали?

Конечно, если вы просто хотите сделать его больше, чем на экране, и использовать жестко закодированное количество строк/столбцов, вы можете поместить его в другое прокручиваемое представление.

+0

Можно ли использовать GestureDetector на сетке, чтобы проверить жесты и разрешить прокрутку? Я заметил, что есть несколько игр, которые позволяют прокручивать обе стороны в сетке. Любая идея, как это может быть достигнуто. Напр. Я вижу множество приложений тральщика на рынке, которые делают это. Любая помощь приветствуется. Пользователь должен иметь возможность прокручивать сетку в том направлении, которое они хотят прокрутить, сдвинув палец по экрану. – random

+0

Я думаю, что в этих играх используется нечто иное, чем GridView. Вы можете написать пользовательский виджет пользовательского интерфейса (который простирается от базового класса View), который рисует 2D-сетку, и реагировать на жесты касания таким образом, чтобы разрешить 2D-прокрутку. –

0

Имеются следующие два решения, и вы можете использовать тот, который соответствует вашим требованиям.

  1. Вы можете использовать RecyclerView вместо GridView с помощью специального менеджера макетов. Вы можете прочитать код this. Кроме того, вы можете прочитать статью this о том, как создать собственный менеджер макетов. В этой статье приведен пример создания двухстрочной схемы прокрутки сетки.

  2. Другое решение - использовать RecyclerView с горизонтальной прокруткой сетки, завернутой в прокрутку.

    <ScrollView> 
        <RecyclerView /> 
    </ScrollView> 
    

    использование GridLayoutManager с горизонтальным прокруткой для просмотра ресайклером.

Первое решение эффективно в том, что оно правильно обрабатывает просмотр отходов.

Надеюсь, это поможет.

Смежные вопросы