Intereting Posts
Как получить доступ к файлам Lollipop для файлов Android через NDK? Ошибка удаления TextInputLayout при удалении сообщения об ошибке не удаляется Android Volley делает 2 запроса на сервер, когда для политики повторных попыток установлено значение 0 Как изменить цвет по диалогу Android Преобразование существующих PHP / MYSQL / веб-сайтов в родные приложения IOS / Android Тест для Android Studio Unit SQLiteDataBase равен нулю Android возвращает объект как результат активности Установка пользовательского шрифта для фрагментов Android Функция User.getUserId () в конечной точке Cloud api возвращает null для объекта пользователя, который не является нулевым В чем разница между «textEmailAddress» и «textWebEmailAddress» Показать ошибку в конце редактирования текстового Android Ошибка подключения к серверу была неудачной при запуске приложения phonegap в эмуляторе Android Почему Bitmap to Base64 String показывает черный фон на веб-обозревателе в Android? Android: Как загрузить файл .mp3 на http-сервер? Запуск эмулятора после создания Android из источника

Макет сетки Vs. Макет таблицы

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

Какой из них, макет таблицы или макет сетки будет эффективен с учетом времени загрузки экрана, потребления системной памяти и дополнительных функций?

Solutions Collecting From Web of "Макет сетки Vs. Макет таблицы"

** EDIT: эта строка была правильной, когда этот ответ был написан, но больше не применяется к 99,9% + всех Android-устройств: There is no GridLayout in the Android API. **

(Примечание: с уровня API 14, наконец, GridLayout, см. Ответы ниже. Кроме того, библиотека поддержки V7 добавляет поддержку GridLayout вплоть до API 7. Однако это описание GridView этого ответа по-прежнему является точным и очень хорошо сформулированным.)

Если вы имеете в виду GridView, TableLayout и GridView – это совершенно разные вещи.

GridView в основном похож на ListView, но элементы которого расположены в строгой сетке. Он подключен к адаптеру и извлекает из него данные, которые пользователь прокручивает через него. Все элементы в сетке должны быть одного размера. Пользователь может перемещать видимый селектор через каждый элемент – цель GridLayout – отображать данные из адаптера и позволяет пользователю перемещаться и выбирать каждый из отображаемых элементов. Единственное отличие от ListView заключается в том, что элементы помещаются в сетку вместо вертикального списка.

TableLayout – это просто менеджер компоновки, несколько похожий на таблицу в HTML. Он сам не прокручивает; Чтобы иметь что-то, что прокручивает, вы должны поместить TableLayout в ScrollView. Это означает, что все отображаемые вами данные должны быть заполнены в планшетах TableLayout, поэтому ScrollView знает общее пространство, в котором он должен прокручиваться. Он также не дает вам прямого выбора или взаимодействия, потому что TableLayout не имеет элементов, это просто менеджер компоновки.

Вы фактически не предоставили достаточно полезной информации о том, что вы на самом деле пытаетесь сделать для кого-либо, чтобы рекомендовать, что использовать. Это зависит от того, что конкретно вы хотите.

Я имею в виду, что будет полезно с точки зрения «дополнительных функций»?!? Ну, какие функции вы ищете!

В любом случае, как правило, представление на основе адаптера должно использоваться для любой ситуации, когда у вас есть значительный объем данных, которые пользователь просматривает; Они намного эффективнее, чем создавать всю иерархию представлений, чтобы отображать ваши данные. Они также являются единственными, которые автоматически обеспечивают выбор по каждому элементу и другие подобные функции. Основной вид этого приложения – ListView, хотя GridView также может использоваться.

Начиная с Android 4.0, есть такая вещь, как GridLayout . GridLayout всегда предпочтительнее TableLayout. Он предоставляет все, что у вас уже есть в TableLayout, и может также заменить другие макеты.

Кажется, это довольно круто, и кажется, что Google хочет, чтобы он был так же популярен, как LinearLayout (согласно их видео на Android 4.0).


EDIT: если вам нужно показать много предметов, подумайте об использовании RecyclerView с GridLayoutManager. Это может помочь с точки зрения использования памяти и процессора.

Конфигурации TableLayout обычно удобны для размещения, так как GridLayout поддерживает как перекрытие строк, так и столбцов. TableRows можно удалить, поскольку они не требуются GridLayout. Для того же интерфейса пользовательский интерфейс GridLayout, как правило, быстрее и занимает меньше памяти, чем TableLayout.

TableLayout поддерживается во всех версиях Android, в то время как GridLayout требует уровня 11 (Android ICS 4.0) или выше, но его можно легко добавить через поддержку librarry v7 для поддержки уровня 7 (Android 2.1) или выше

Это хорошая презентация GridLayout, которая также описывает различия по сравнению с TableLayout: http://blog.stylingandroid.com/archives/669

Однако одно из самых важных различий в том, что оно доступно только в ICS (Ice Cream Sandwich) и новее. В настоящее время это означает менее 30% доли рынка, поэтому для большинства разработчиков ответ будет следующим: подождите несколько лет, прежде чем использовать GridLayout. YMMV, конечно.

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

В макетах сетки компоненты могут автоматически настраиваться на представление, беря numcolumns = «autofit». Здесь нам не нужно устанавливать, сколько строк и столбцов нам нужно, но в макете таблицы, там у нас нет такого варианта и мы должны установить, сколько строк и столбцов нам нужно. В макете таблицы мы не можем вставить более одного элемента в строку без использования относительной компоновки

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

Рассматривая различные сценарии, GridLayout самостоятельно выберет большое количество столбцов и строк в соответствии с содержанием, и это будет более гибким с добавлением элементов.

Также GridLayout будет более гибким, но это еще предстоит сделать.