web-dev-qa-db-fra.com

Quelle est la différence exacte entre gravité et layout_gravity

Duplicata possible:
Android - gravité et layout_gravity

Je travaille sur Android xml's. J'ai utilisé Android:layout_gravity="center" pour aligner les composants dans une position spécifique.

Maintenant, un jour, alors que je travaillais sur une activité de type dialogue , je suis tombé sur Android:gravity="center". Ce que j'ai trouvé, gravity a été utilisé pour aligner son child sur une position spécifique.

Je voudrais partager un exemple de ce que c'est,

Android: gravité = "centre"

<LinearLayout 
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:gravity="center_vertical"
    Android:orientation="vertical" >
            <EditText
                Android:id="@+id/enterNumberEdit"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:layout_margin="10dp"
                Android:hint="Enter No." >

                <requestFocus />
            </EditText>
            </LinearLayout>

Il aligne l'enfant de LinearLayout au centre.

Android: layout_gravity = "center"

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center"
    Android:orientation="vertical"
    Android:background="@drawable/dialog_background" >
</LinearLayout>

Il aligne le LinearLayout lui-même au centre.

Maintenant mes questions sont:

  1. Si j'ai raison dans ces hypothèses, que gravity concerne les composants enfants et layout_gravity est pour le composant parent.
  2. Quand choisir gravity plutôt que layout_gravity.

J'ai trouvé autant d'explications sur les xml jusqu'à présent. J'aimerais en entendre beaucoup mieux. Faites-moi savoir, si je me trompe quelque part

14
Sahil Mahajan Mj
  1. Oui, votre compréhension est correcte. Tout attribut layout_ Donne des instructions à la vue parent.
  2. Généralement, si une vue occupe toute la largeur/hauteur de son parent, vous n'aurez pas besoin de spécifier layout_gravity, Vous trouverez probablement gravity plus utile. Si votre vue ne prend pas toute une dimension de son parent, vous pouvez l'aligner en fonction de l'apparence souhaitée.
11
wsanville

Leur nom devrait vous aider:
Android:gravity définit la gravité du contenu du View son utilisé.
Android:layout_gravity définit la gravité de View ou Layout dans son parent.

Pour plus d'informations, visitez ce site

4
Ram kiran

Android: la gravité définit la gravité du contenu de la vue utilisée.

Android: layout_gravity définit la gravité de la vue ou de la disposition dans son parent.

1
Rajeev N B