Intereting Posts
Ошибка сборки после перехода с SDK на Crashlytics на Fabric Веб-браузер Android с подключением https и базовым auth. Как это сделать? Андроид Вывод Android XML «@» Символ Переработка просмотров в адаптере пользовательского массива: как именно он обрабатывается? Единственное намерение позволить пользователю сделать снимок ИЛИ выбрать изображение из галереи на Android Японские персонажи, похожие на китайские на Android Автоматическое определение разрешения камеры (то есть мегапикселей) на Android Как отправить изображение (растровое изображение) на сервер в android с данными из нескольких форм json Как загрузить контакт Фото? Вывод фрагмента фрагмента Android Studio Google Map Отправьте ссылку на группу whatsapp непосредственно из браузера (или из приложения) Есть ли способ игнорировать INSTALL_FAILED_VERSION_DOWNGRADE при установке приложения с Android Debug Bridge? Как я могу обновить информацию в Android-активности из фоновой службы Каковы 37 пакетов Java API, которые могут быть обременены решением Oracle v4 в мае 2014 года?

GridLayout и строка / колонка Span Woe

Сообщение блога разработчиков Android, представляющее GridLayout показывает эту диаграмму того, как интервалы влияют на автоматическое распределение индексов:

Автоматическое распределение индексов

Я пытаюсь реализовать это с помощью GridLayout . Вот что у меня есть до сих пор:

 <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.commonsware.android.gridlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" app:orientation="horizontal" app:columnCount="8"> <Button app:layout_columnSpan="2" app:layout_rowSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_1"/> <Button app:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_2"/> <Button app:layout_rowSpan="4" android:text="@string/string_3"/> <Button app:layout_columnSpan="3" app:layout_rowSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_4"/> <Button app:layout_columnSpan="3" android:layout_gravity="fill_horizontal" android:text="@string/string_5"/> <Button app:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_6"/> <android.support.v7.widget.Space app:layout_column="0" android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> </android.support.v7.widget.GridLayout> 

Я должен был представить элементы <Space> чтобы каждый столбец имел минимальную ширину, иначе я бы имел кучу столбцов нулевой ширины.

Однако даже с ними я получаю следующее:

Образец GridLayout

В частности:

  • Несмотря на android:layout_gravity="fill_horizontal" , мои виджеты с android:layout_gravity="fill_horizontal" столбцов не заполняют натянутые столбцы

  • Несмотря на значения android:layout_rowSpan , ничто не охватывает строки

Может ли кто-нибудь воспроизвести диаграмму из сообщения в блоге с помощью GridLayout ?

Благодаря!

Solutions Collecting From Web of "GridLayout и строка / колонка Span Woe"

Он чувствует себя довольно взломанным, но мне удалось получить правильный взгляд, добавив лишний столбец и строку за пределы того, что необходимо. Затем я заполнил дополнительный столбец пространством в каждой строке, определяющим высоту, и заполнил дополнительную строку пространством в каждом столбце, определяющим ширину. Для дополнительной гибкости, я думаю, эти размеры пространства могут быть установлены в коде, чтобы обеспечить что-то похожее на вес. Я попытался добавить скриншот, но у меня нет необходимой репутации.

 <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnCount="9" android:orientation="horizontal" android:rowCount="8" > <Button android:layout_columnSpan="2" android:layout_gravity="fill" android:layout_rowSpan="2" android:text="1" /> <Button android:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="2" /> <Button android:layout_gravity="fill_vertical" android:layout_rowSpan="4" android:text="3" /> <Button android:layout_columnSpan="3" android:layout_gravity="fill" android:layout_rowSpan="2" android:text="4" /> <Button android:layout_columnSpan="3" android:layout_gravity="fill_horizontal" android:text="5" /> <Button android:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="6" /> <Space android:layout_width="36dp" android:layout_column="0" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="1" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="2" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="3" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="4" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="5" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="6" android:layout_row="7" /> <Space android:layout_width="36dp" android:layout_column="7" android:layout_row="7" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="0" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="1" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="2" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="3" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="4" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="5" /> <Space android:layout_height="36dp" android:layout_column="8" android:layout_row="6" /> </GridLayout> 

Скриншот

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" > <GridLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:columnCount="8" android:rowCount="7" > <TextView android:layout_width="50dip" android:layout_height="50dip" android:layout_columnSpan="2" android:layout_rowSpan="2" android:background="#a30000" android:gravity="center" android:text="1" android:textColor="@android:color/white" android:textSize="20dip" /> <TextView android:layout_width="50dip" android:layout_height="25dip" android:layout_columnSpan="2" android:layout_rowSpan="1" android:background="#0c00a3" android:gravity="center" android:text="2" android:textColor="@android:color/white" android:textSize="20dip" /> <TextView android:layout_width="25dip" android:layout_height="100dip" android:layout_columnSpan="1" android:layout_rowSpan="4" android:background="#00a313" android:gravity="center" android:text="3" android:textColor="@android:color/white" android:textSize="20dip" /> <TextView android:layout_width="75dip" android:layout_height="50dip" android:layout_columnSpan="3" android:layout_rowSpan="2" android:background="#a29100" android:gravity="center" android:text="4" android:textColor="@android:color/white" android:textSize="20dip" /> <TextView android:layout_width="75dip" android:layout_height="25dip" android:layout_columnSpan="3" android:layout_rowSpan="1" android:background="#a500ab" android:gravity="center" android:text="5" android:textColor="@android:color/white" android:textSize="20dip" /> <TextView android:layout_width="50dip" android:layout_height="25dip" android:layout_columnSpan="2" android:layout_rowSpan="1" android:background="#00a9ab" android:gravity="center" android:text="6" android:textColor="@android:color/white" android:textSize="20dip" /> </GridLayout> </RelativeLayout> 

Скриншот

Вы должны установить как layout_gravity, так и layout_columntWeight в своих столбцах

 <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:text="سوم شخص" app:layout_gravity="fill_horizontal" app:layout_columnWeight="1" /> <TextView android:text="دوم شخص" app:layout_gravity="fill_horizontal" app:layout_columnWeight="1" /> <TextView android:text="اول شخص" app:layout_gravity="fill_horizontal" app:layout_columnWeight="1" /> </android.support.v7.widget.GridLayout> 

Поддержка Android V7. Библиотека GridLayout позволяет легко распределить пространство, используя принцип веса. Чтобы растянуть колонку, убедитесь, что компоненты внутри нее определяют вес или силу тяжести. Чтобы предотвратить растяжение колонны, убедитесь, что один из компонентов в столбце не определяет вес или силу тяжести. Не забудьте добавить зависимость для этой библиотеки. Добавьте com.android.support:gridlayout-v7:25.0.1 в build.gradle.

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:columnCount="2" app:rowCount="2"> <TextView android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" android:text="First" app:layout_columnWeight="1" app:layout_rowWeight="1" /> <TextView android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" android:text="Second" app:layout_columnWeight="1" app:layout_rowWeight="1" /> <TextView android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" android:text="Third" app:layout_columnWeight="1" app:layout_rowWeight="1" /> <TextView android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" app:layout_columnWeight="1" app:layout_rowWeight="1" android:text="fourth"/> </android.support.v7.widget.GridLayout> 

Начиная с API 21, GridLayout теперь поддерживает вес LinearLayout. Для получения дополнительной информации см. Ссылку ниже:

https://stackoverflow.com/a/31089200/1296944