Как установить ширину моей кнопки на wrap_content внутри GridLayout?

Мои кнопки переполняются внутри сетки, потому что их длина с самого начала излишне велика. Я просто хочу установить их wrap_content для всех. Я делал это руководство. Вот мой код.

<GridLayout
    android:id="@+id/characterLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/keyOptionLayout"
    android:layout_below="@id/tvLotteryNumber"
    android:background="#33000000"
    android:columnCount="5"
    android:orientation="horizontal">

    <Button
        android:layout_row="0"
        android:text="a" />

    <Button
        android:layout_row="0"
        android:text="b" />

    <Button
        android:layout_row="0"
        android:text="c" />

    <Button
        android:layout_row="0"
        android:text="d" />

    <Button
        android:layout_row="0"
        android:text="e" />

</GridLayout>

Удаление android_layout_row="0" строк ничего не меняет. Вот как они отображаются.

введите здесь описание изображения


person Zin Win Htet    schedule 05.03.2018    source источник


Ответы (2)


Можете добавить

android:layout_width="0dp"
 android:layout_height="0dp'

к вашим кнопкам и добавьте

grid:layout_columnWeight="1"
grid:layout_rowWeight="1"

к вашим кнопкам. Не забудьте добавить xmlns:android="http://schemas.android.com/apk/res/android" namepsace в свой GridLayout

person karandeep singh    schedule 05.03.2018
comment
Не работает. И все кнопки исчезли. Я не думаю, что мне нужен xmls: android, поскольку мой GridLayout не является родительским представлением. - person Zin Win Htet; 05.03.2018

Использование android.support.v7.widget.GridLayout решило проблему.

  1. В Gradle compile 'com.android.support:gridlayout-v7:25.3.1'
  2. Я изменил свой код как правильный ответ на этот вопрос.

Результат:

введите здесь описание изображения

person Zin Win Htet    schedule 07.03.2018