1
votes

Android Studio: les boutons de la disposition de la grille changent de taille dans l'émulateur

entrez la description de l'image ici

Je ne sais pas comment faire toutes les tailles de boutons sont identiques ... J'ai essayé de créer une grille pour envelopper le contenu, cela fonctionnait, mais les tailles des boutons étaient un peu différentes en fonction du nombre de caractères. Est-ce que quelqu'un sait comment formater ce truc?

J'ai essayé d'ajouter le nombre de lignes et de colonnes, la gravité, etc., mais cela n'a rien changé.

Voici mon code 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>


1 commentaires

utiliser une disposition linéaire, cela rend la disposition égale pour tous les mobiles


3 Réponses :


1
votes

Remplacez match_parent par wrap_content si vous prévoyez d'utiliser GridLayout:

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

Sinon, utilisez des directives de contrainte ou une disposition linéaire


0 commentaires

1
votes

Comme vous pouvez le voir dans ce document . android: layout_gravity = "fill" va

Augmentez la taille horizontale et verticale de l'objet si nécessaire pour qu'il remplit complètement son conteneur

et ici la taille de votre conteneur est match_parent .Ainsi, il remplit votre mise en page. Maintenant, créez votre conteneur (GridLayout) wrap_content , sinon utilisez correctement l'attribut gravity


2 commentaires

Alors, quelle gravité recommanderiez-vous? J'ai essayé de les changer, à la fois en grille et en boutons ...


@CrashendoDt Je vous recommande d'utiliser la disposition linéaire à cet effet.



0
votes

Pourquoi seuls les deux boutons du bas remplissent le reste? Les 8 ne devraient-ils pas tous remplir cet espace?


0 commentaires