7
votes

Pourquoi les boutons adjacents se déplacent-ils lorsque je modifie la taille du texte dans un bouton

Voici la mise en page lorsque chaque bouton CODE> a la même taille texte:

Entrez la description de l'image ici p>

et voici la mise en page lorsque j'augmente la taille de la taille de Texte inférieur droit code> S: P>

 Entrez la description de l'image ici p>

Qu'est-ce qui se passe ici? Pourquoi la touche "0" code> en déplaçant plus bas que les deux boutons code> code> adjacents à celui-ci? P>

Voici la mise en page: p>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="center"
              android:background="@android:color/white"
              android:orientation="vertical"
              android:padding="6dp">

    <TextView
            android:id="@+id/input_textview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColorHint="@color/hint_color"
            android:singleLine="true"
            android:textSize="40sp"/>

    <GridLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnCount="3">

        <Button
            android:id="@+id/the_1_button"
            android:background="@android:color/white"
            android:text="1"/>

        <Button
            android:id="@+id/the_2_button"
            android:background="@android:color/white"
            android:text="2"/>

        <Button
            android:id="@+id/the_3_button"
            android:background="@android:color/white"
            android:text="3"/>

        <Button
            android:id="@+id/the_4_button"
            android:background="@android:color/white"
            android:text="4"/>

        <Button
            android:id="@+id/the_5_button"
            android:background="@android:color/white"
            android:text="5"/>

        <Button
            android:id="@+id/the_6_button"
            android:background="@android:color/white"
            android:text="6"/>

        <Button
            android:id="@+id/the_7_button"
            android:background="@android:color/white"
            android:text="7"/>

        <Button
            android:id="@+id/the_8_button"
            android:background="@android:color/white"
            android:text="8"/>

        <Button
            android:id="@+id/the_9_button"
            android:background="@android:color/white"
            android:text="9"/>

        <ImageButton
            android:id="@+id/the_backspace_button"
            style="@style/Widget.AppCompat.Button"
            android:background="@android:color/white"
            android:src="@drawable/ic_backspace"/>

        <Button
            android:id="@+id/the_0_button"
            android:background="@android:color/white"
            android:text="0"/>

        <Button
                android:id="@+id/the_done_button"
                android:layout_width="88dp"
                android:layout_height="48dp"
                android:minWidth="0dp"
                android:minHeight="0dp"
                android:background="@android:color/white"
                android:text="done"/>
    </GridLayout>

</LinearLayout>


2 commentaires

Je ne peux pas répondre à votre question spécifique, mais régler android: layout_gravity = "top" sur android: id = "@ + id / the_0_button" doit déplacer le bouton . / code>. Vous devriez passer par le code source et voir comment Gridlayout mesure et pose ses enfants.


@Vikram a essayé ça. n'a pas fonctionné.


6 Réponses :


1
votes

Je pense qu'il y a un problème avec le bouton fait. Vous définissez le fond de celui-ci. Ensuite, vous définissez également son texte comme "fait".

Il suffit de définir le texte vide vide et le problème peut résoudre;)


3 commentaires

Le bouton doit avoir le texte


"-" N'est-ce pas une image c'est un trait d'union littéral. Lorsque la taille du texte change, le texte change également sur "-"


Si vous regardez la première image, vous verrez «fait» comme le texte du bouton.



1
votes

Qu'en est-il de l'utilisation de la grille: layout_rowweight ou la grille: les attributs de layout_rowheight sont les mêmes pour chaque bouton?

Regardez ceci: https://stackoverflow.com/a/32291319/2205825


0 commentaires

1
votes

Il semble que la gridlayout soit réservée suffisamment de hauteur pour la taille du texte réelle et du remplissage par défaut malgré la mise en page_Height pour le bouton Terminé.


0 commentaires

1
votes

Essayez ceci .....

Utiliser GridView au lieu de la touche qui ne vous donne aucun problème de mise en page (ajustement des vues) .

regarder sur l'exemple ci-dessous qui résolvez votre problème à propos de Réglage des boutons

Utilisez cette page au lieu de votre mise en page ..... xxx

ajoutez ces 2 lignes dans votre Oncreate méthode ..... xxx

Ajouter cet adaptateur dans votre projet ..... xxx

Et ceci est la mise en page d'élément.xml dans votre dossier de mise en page ... xxx

Code ci-dessus vous donne la sortie comme celle-ci ....

 gut

Remarque: - Utilisez toujours GridView ou listview pour le même motif de vues .....


5 commentaires

Comment avez-vous empêché le GridView du défilement?


Où vous faites défiler dans la réponse?


GridViews Faites défiler


nvm. Pour une raison quelconque, ce n'est plus défilant.


De plus, vous remarquerez que l'arrière-plan de mes boutons est blanc, et pourtant vous avez fait votre vôtre transparent - éliminant la nécessité de faire face à des frontières montrant et des animations ne montrant pas. Mais mes boutons doivent être blancs, sans frontières et avec les animations par défaut. C'est pourquoi j'ai aimé gridlayout parce que j'ai eu toutes ces choses; ignorer le comportement d'étrange "0".



1
votes

Vous pouvez utiliser la propriété Android: Layout_weight.


0 commentaires

0
votes

Construisez-le avec des présentations "linéaires" à la place.


0 commentaires