Можно заполнить «сетчатый» вид по столбцу, а не по строке?

Я использую GridView для отображения списка ТВ-каналов с помощью SimpleCursorAdapter для извлечения имени канала из db. Поведение по умолчанию – заполнить сетку влево -> вправо, сверху -> снизу, как в …

1 2 3 4 5 6 

GridView фиксирован с 2 столбцами и, очевидно, прокручивается по вертикали, если он превышает вертикальные границы его родителя.

У меня есть пользователь, который предпочел бы, чтобы каждый столбец заполнялся сверху вниз, прежде чем переходить к следующему так эффективно. Я смотрю на наличие фиксированного количества строк с «сеткой» какого-то прокручиваемого по горизонтали, например с 9 строками (Фиксированный), без вертикальной прокрутки, 2 столбца и горизонтальная прокрутка …

 1 10 | 19 2 11 | 20 3 12 | 21 4 13 | 22 5 14 | 23 <-> 19-27 hidden, but columns scrollable horizontally 6 15 | 24 7 16 | 25 8 17 | 26 9 18 | 27 

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

Благодарю.

Вы не можете сделать это с помощью GridView. Для этого вам нужно создать пользовательский вид.

Изменить – если вы знаете, насколько велики ваши элементы сетки, вы можете разрезать некоторые углы. GridView сложнее в основном потому, что он имеет дело с элементами любого размера и загружает их динамически. Для вас может быть проще:

  1. Создайте HorizontalScrollView с горизонтальным LinearLayout внутри.
  2. Определение количества строк вашего предмета на экране. Вызовите эти rows .
  3. while вас все еще есть элементы, которые вам нужны для компоновки:
    1. Создайте вертикальный LinearLayout , добавив к нему rows или меньше элементов.
    2. Добавьте новый вертикальный LinearLayout в горизонтальный.

Есть некоторые недостатки в сравнении с тем, что вам поможет «горизонтальный GridView»:

  • Все виды загружаются сразу, что плохо для огромных списков предметов.
  • Вам нужно знать, насколько велики ваши предметы, и они должны быть одного размера.

расквитаться:

  • Это очень легко реализовать.
Intereting Posts
Android 4 – Батарея камеры белого цвета прекращается после автофокуса Метод вызова в основном классе из класса статического фрагмента Существуют ли альтернативы атрибута letterSpacing для EditText в API 20 или ниже Android – Junit – тестируемый проект использует внешний Jar Как обновить местоположение google map v2 из фонового сервиса android Gradle Sync не заканчивается после обновления 0.4.6 EditText setError () без сообщения только значок Извлечение кода запроса из будильника broadcastReceiver Android – другое поведение в выпуске, подписанном выпуском? FindViewByID () возвращает значение null в пользовательском классе View Установка библиотеки поддержки для PreferenceFragmentCompat Google Analytics для Android v4 – Автоматическое измерение экрана не работает? Это хорошая идея использовать Service as Presenter в контексте MVP Как получить идентификатор из базы данных при щелчке элемента списка в android Не удается получить JSONArray с IP-сервера, но я могу с обычного сервера?