Android Studio: кнопки в Grid Layout изменяют размер в эмуляторе - PullRequest
0 голосов
/ 15 января 2019

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

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

Я попытался добавить количество строк и столбцов, гравитацию и т. Д., Но это ничего не изменило.

Вот мой XML-код:

<GridLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <Button
        android:text="Hello"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/hello"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Do you speak &#10; English?"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/english"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Good Evening"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/goodEvening"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Please"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/please"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="My name is"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/name"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="Welcome"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/welcome"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="How are you?"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="0"
        android:layout_row="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/howAreYou"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

    <Button
        android:text="I live in"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_column="1"
        android:layout_row="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/iLiveIn"
        android:onClick="buttonTapped"
        android:gravity="center"
        android:layout_gravity="fill" />

</GridLayout>

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Как вы можете видеть в этом документе . android:layout_gravity="fill" будет

Увеличьте горизонтальный и вертикальный размер объекта, если это необходимо, чтобы он полностью заполняет свой контейнер

и здесь ваш размер контейнера match_parent. Так что он заполняет ваш макет. Теперь сделайте ваш контейнер (GridLayout) wrap_content, в противном случае используйте атрибут gravity правильно

0 голосов
/ 15 января 2019

Почему только две нижние кнопки заполняют остальные? Не должны ли все 8 из них заполнить это пространство?

0 голосов
/ 15 января 2019

Измените match_parent на wrap_content, если вы планируете использовать GridLayout:

<GridLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
</GridLayout>

Если нет, тогда используйте ограничивающие ориентиры или линейное расположение

...