Comment centrer un textview dans un linearlayout
J'ai la disposition suivante que je voudrais faire apparaître le textview au centre et au milieu de la vue. Comment puis-je réaliser cela?
J'ai essayé d'ajuster les différents attributs de gravité en regardant la mise en page en vue graphique, mais rien ne semble le changer. J'aimerais le textview au centre, ce que j'ai fait mais à mi-chemin de la vue.
Merci matt.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/carefreebgscaledalphajpg" >
<TextView
android:id="@+id/textviewdatefornocallspage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="You have no calls for "
android:textSize="25sp" />
</LinearLayout>
10 réponses
Définissez la gravité au centre de votre balise linearLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:background="@drawable/carefreebgscaledalphajpg" >
Ou utilisez un RelativeLayout
comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/carefreebgscaledalphajpg" >
<TextView
android:id="@+id/textviewdatefornocallspage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="You have no calls for "
android:textSize="25sp" />
</RelativeLayout>
Définissez android:gravity="center"
dans la mise en page linéaire et conservez la hauteur et la largeur de la vue texte comme wrap_content
.
Cette Solution a fonctionné pour moi.
Essayez ceci
Simple j'ai essayé de beaucoup répondre mais toutes les réponses ne fonctionnent pas ......enfin, cette méthode fonctionne pour moi
<LinearLayout
android:layout_below="@+id/iv_divider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="@dimen/_10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/mycredits"
android:textColor="@color/colorGray"
android:gravity="center"
android:textSize="@dimen/_25dp" />
</LinearLayout>
Ajouter android:gravity="center_horizontal"
votre LinearLayout et modifier votre TextView's layout_width, comme android:layout_width="wrap_content"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="@drawable/carefreebgscaledalphajpg" >
<TextView
android:id="@+id/textviewdatefornocallspage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="You have no calls for "
android:textSize="25sp" />
</LinearLayout>
Définissez la largeur de votre textview sur wrap_content
de votre textview et définissez votre LinearLayout sur android:gravity=center_horizontal
On dirait que vous voulez android:layout_gravity
pour le TextView
Voir docs: developer.android.com
Si dans linearlayout votre orientation verticale, vous pouvez mettre le textview dans le "centre horizontal" par android:layout_gravity="center"
. Pour centrer textview verticalement, vous devez définir layout_height de textview sur match_parent et définir android: gravity sur "center". Si vous souhaitez utiliser plus d'une vue dans cette mise en page, vous devez utiliser RelativeLayout et set
android:layout_centerInParent="true"
.
Utilisez la mise en page Relative, elle donne toujours une mise en page plus précise et plus flexible
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
Définissez android:gravity="center"
dans votre disposition linéaire