2013-08-21 11 views
0

Je suis un débutant total dans la mise en page Android, mais je veux centrer le contenu verticalement et horizontalement.Android Centrer le contenu

donc ce livre que je lis dit ceci:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/background" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:padding="30dip" 
    android:orientation="horizontal" > 
    <LinearLayout 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_gravity="center" > 
    ...component.. etc... 

Cela fonctionne et je pense que je reçois, sauf dit Eclipse:

Ce LinearLayout ou son parent ne sert à rien; transférer l'arrière-plan attribuer à l'autre vue

Mais je ne comprends pas?

+1

de publier votre fichier XML complet. –

+0

RelativeLayout a beaucoup de centrage. Mais pourquoi LinearLayout dans un LinearLayout .O –

+0

Il n'affecte pas sérieusement les performances des applications –

Répondre

1

Cette version linéaire ou son parent est inutile; transférer l'arrière-plan attribut à l'autre point de vue

signifie que vous pouvez gérer la mise en page entière par l'auto it parent, vous ajoutez sans nécessité une autre LinearLayout qui peut dégrader les performances de mise en page

Vous pouvez utiliser android:gravity="center" à la place de android:layout_gravity="center" qu'un enfant fournit à son parent.

Solution

vous pouvez combiner vos mises en page linéaires comme

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/background" 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:gravity="center" 
    android:padding="30dip" 
    > 
+0

Je me sens comme votre answere est le meilleur. Depuis que je devais sentir que je devais combiner à deux à un, que je pense orginally, mais alors l'arrière-plan devient à moitié visible. Cette solution d'autre part fonctionne très bien! Je ne comprends pas vraiment ce qu'est la gravité = centre et pourquoi cela fonctionne. Pouvais-tu l'expliquer un peu plus loin? – Haagenti

+2

android: gravité = « center » dans une mise en page de parent aligner des vues de l'enfant au centre et android: layout_gravity = « center » en vue de l'enfant sera l'aligner dans le centre de sa mère .... –

+0

Remerciez-vous tout compris; – Haagenti

0

ajouter le paramètre android:background dans les deux LinearLayout

0

Ce LinearLayout ou son parent ne sert à rien; transférer l'arrière-plan attribut à l'autre point de vue

Ceci est un avertissement déclenchée lorsqu'un Layout a un seul enfant qui est aussi un Layout. Dans votre cas LinearLayout. Dans ces cas, l'un des autres peut être retiré sans aucun problème. Il est recommandé de supprimer ces dispositions redondantes. Il est .. comme il dit juste un avertissement, il ne provoquera aucune exception, mais si vous supprimez cette disposition redondante qui aidera à améliorer les performances globales

0

Vous devez partager votre code complet afin que tout le monde se le scénario de votre problème. De toute façon, vous pouvez suivre trois façons de faire les choses.

Approche One:

android: layout_centerInParent = "true"

code ci-dessus rendra votre centre de mise en page horizontalement et verticalement.

approche en deux:

Et si vous voulez faire individuellement.(Peut-être besoins parfois)

android: layout_centerHorizontal = "true"

android: layout_centerVertical = "true"

Approche trois:

android: gravité = "center " (Bien que je vois que vous avez utilisé, vous pouvez avoir manqué n'importe quel point dans le code).

J'espère que cela vous aidera. Codage heureux.

Questions connexes