Создание сетки, такой как макет в Android

В принципе, у меня есть представление, которое нужно разделить на сетку 2×4, причем каждый раздел равен по размеру (т.е. каждая строка будет составлять 25% высоты экрана, а каждый столбец будет составлять 50% ширины экрана).

Мой подход состоял в том, чтобы использовать горизонтальный LinearLayout с двумя внутренними LinearLayouts с весом 0,5, а затем в каждом из этих LinearLayouts установите вес детей на 0,25, чтобы каждый из них занимал 25% экрана.

Хотя это, похоже, работает, это, по-видимому, очень плохо для производительности (см. Эту тему по какой причине Почему вложенные веса плохи для производительности? Альтернативы? )

Есть ли альтернативы для достижения этого? Я посмотрел вокруг, но я не могу найти для этого чистое XML-решение.

Ниже приведен пример кода, как у меня есть LinearLayouts и их настройки детей

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:baselineAligned="false" android:weightSum="1.0" > <LinearLayout android:orientation="vertical" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="0.5" android:weightSum="1.0"> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="0.5" android:weightSum="1.0"> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> <ImageView android:layout_width="wrap_content" android:layout_height="0dip" android:src="@drawable/example" android:layout_gravity="center_horizontal" android:layout_weight="0.25" /> </LinearLayout> </LinearLayout> 

Возможно, вы захотите дать GridLayout вращение.

Там также есть библиотека, которая делает ее доступной для устройств с 1.6+.

Используйте GridView внутри LinearLayout. Проверьте http://developer.android.com/resources/tutorials/views/hello-gridview.html

Intereting Posts
Показывать несколько изображений в изображении. Просмотр один за другим с повторным эффектом слева направо. Отправка объекта json на HTTP-сервер в android Показать настройки под аккаунтами и меню синхронизации для приложения для Android Есть ли какая-либо документация для Android XML? Как удалить верхний край TextView? Android не может разобрать строку на сегодняшний день Как установить пакет значков в пользовательскую панель запуска? Создание ArrayList пользовательских объектов Элементы списка элементов списка изменяют позицию при прокрутке андроида? Прокрутка текста над кнопками, кнопки в нижней части ViewPager с одной страницей, содержащей несколько фрагментов "java.lang.IllegalArgumentException: нет представления для id" Как получить элемент из адаптера RecyclerView в Android Невозможно получить доступ к zzbql в Firebase Использование PreferenceScreen / PreferenceActivity для настройки виджетов главного экрана Как пользовательское приложение whatsapp обнаруживает изменение в изображении профиля своего контакта?