GridView VS GridLayout в приложениях для Android

212

Я должен использовать Grid для реализации браузера фотографий в Android. Итак, я хотел бы знать разницу между GridView и GridLayout .

Так что я выберу правильный.

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

Лакшми Срикантх Читла
источник

Ответы:

264

GridView является ViewGroup , который отображает элементы в двумерной сетке прокруткой. Элементы в сетке происходят из ListAdapter, связанного с этим представлением.

Это то, что вы хотите использовать (продолжайте использовать). Поскольку GridView получает свои данные из ListAdapter, единственные данные, загруженные в память, будут отображаться на экране. GridViews, так же как ListViews, повторно используют и перерабатывают свои представления для повышения производительности.

Принимая во внимание, что GridLayout - это макет, который помещает своих дочерних элементов в прямоугольную сетку.

Он был представлен на уровне API 14 и недавно был перенесен в библиотеку поддержки. Его основная цель - решить проблемы с выравниванием и производительностью в других макетах. Посмотрите этот учебник, если вы хотите узнать больше о GridLayout.

Бенито Бертоли
источник
15
GridLayout также является ViewGroup.
Дмитрий Лазерка
22
Я никогда не говорил, что это не так. Я просто подчеркивал тот факт, что это макет.
Бенито Бертоли
16
@ Лаки один сценарий будет, если вы хотите загрузить кучу изображений в виде сетки. Использование GridView будет загружать в память только те виды, которые видны на экране. Принимая во внимание, что если вы используете GridLayout, вам придется загружать все изображения, которые будут отображаться в любое время, вызывая ошибку внеочередной памяти на большинстве устройств.
BigBen3216
15
Основное различие заключается в том, что GridView может поддерживать только одинаковую ширину столбца. Макет сетки позволяет вам иметь содержимое, охватывающее 2 или более столбцов. Grid Layout позволяет создавать экраны с содержимым, охватывающим столбцы разных размеров
Yasir
58
@laki Сценарий один: нарисуйте калькулятор, GridLayout. Сценарий второй: нарисуйте галерею, GridView.
Марио Веласко