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>
24
demandé sur turtleboy 2012-11-20 18:08:20

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>
42
répondu Houcine 2012-11-20 14:25:00

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.

6
répondu Apoorv Singh 2016-06-09 07:06:57

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>
3
répondu Sunil 2017-09-20 16:16:52

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>
0
répondu waqaslam 2012-11-20 14:10:47

Définissez la largeur de votre textview sur wrap_content de votre textview et définissez votre LinearLayout sur android:gravity=center_horizontal

0
répondu Hardik Nadiyapara 2012-11-20 14:13:28

On dirait que vous voulez android:layout_gravity pour le TextView

Voir docs: developer.android.com

0
répondu MrChaz 2012-11-20 14:14:07
    <TextView
...
    android:layout_gravity="center"
....
/>
0
répondu prozhyga 2012-11-20 14:15:25

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".

0
répondu jumper0k 2012-11-20 14:17:16

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>
0
répondu Tahreem 2012-11-20 14:22:27

Définissez android:gravity="center" dans votre disposition linéaire

0
répondu Himanshu itmca 2018-07-17 09:48:43