Intereting Posts
Android Notification – Показать полное сообщение Остановить EditText от получения фокуса при запуске Activity Как вставить чертежи в текст Использование .aar NoClassDefFoundError Но класс существует и находится в Dexed Как установить блок для Paint.setTextSize () Выбор нескольких изображений с помощью GalleryView Сбой после добавления меню параметров пункта в панель действий из фрагмента, за которым следует изменение ориентации Карта не попадает в эмулятор android api v2 Что может вызвать ошибку socket () «Permission denied»? Crosswalk Cordova – js alert показывает символы блока на китайском интерфейсе android Android Permission, required = "false", fail IllegalStateException: невозможно изменить идентификатор контейнера фрагмента Обнаружить приложение установлено или нет? Плагины не всегда добавляются после того, как кордова добавляет платформу android и iOs Как установить настраиваемый шрифт для элементов в NavigationView?

Горизонтальный центр Просмотров в Android GridLayout

Мы пишем приложение с таргетингом на ICS + и считаем, что GridLayout – лучшая парадигма макета, но об этом очень мало написано, и у нас есть некоторые проблемы с выравниванием.

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/row_background" android:rowCount="1" android:columnCount="3" android:layout_width="match_parent" android:layout_height="match_parent" android:useDefaultMargins="true" android:background="@drawable/list_item_bg"> <ImageView android:id="@+id/visibilityIcon" android:layout_row="0" android:layout_column="0" android:src="@drawable/visibility_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/windIcon" android:layout_row="0" android:layout_column="1" android:src="@drawable/wind_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/crosswindIcon" android:layout_row="0" android:layout_column="2" android:src="@drawable/cloud_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> </GridLayout> 

Тем не менее, левые 2 значки остаются выровненными по левому краю, а самый правый значок центрируется с оставшимся пространством.

По существу, нам нужно указать размер каждого столбца как 1/3 (с 3 столбцов) от общего размера экрана. Я думал, что это то, что сделал GridLayout, но похоже, что «wrap_content» вызывает это поведение (имеет смысл), но «match_parent» заставляет первый столбец заполнять весь экран, а не заполнять его ячейку, что я бы ожидал.

Кажется, мы пробовали каждую комбинацию силы тяжести, layout_gravity и т. Д., Но либо мы принципиально делаем что-то неправильно, либо обнаружили ограничение GridLayout.

Спасибо за вашу помощь!

Solutions Collecting From Web of "Горизонтальный центр Просмотров в Android GridLayout"

Допускается только один ряд и один столбец в GridLayout, и это тот, который имеет гравитацию вдоль этой оси. Если несколько строк или столбцов определяют гравитацию, то только один получит ее (если я помню, что это «последний»). Выберите другой макет или напишите свой собственный. Если вам нужна только строка с одинаково разнесенными значками, вы можете использовать LinearLayout, где ширина компонентов равна 0px, а вес одинаковый, например 1.