Как центрировать textview внутри linearlayout

У меня есть следующий макет, который я хотел бы сделать textview в центре и середине представления. Как я могу достичь этого?

Я попытался настроить различные атрибуты гравитации при просмотре макета в графическом представлении, но ничего не изменилось. Я хотел бы textview в центре, который я сделал, но на полпути вниз.

спасибо Мэтт.

<?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 ответов


установите гравитацию в центр в теге 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" >

или использовать RelativeLayout такой :

<?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>

Set android:gravity="center" в линейной компоновке и сохранить высоту и ширину текстового представления как wrap_content.

это решение сработало для меня.


попробуй такое

просто я пытался много ответов, но все ответы не работают ......наконец, эти методы работают для меня

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

добавить android:gravity="center_horizontal" на LinearLayout и изменить свой TextView ' s layout_width as 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>

установите ширину вашего textview в wrap_content вашего textview и установите LinearLayout в android:gravity=center_horizontal


звучит так, как будто вы хотите android:layout_gravity для TextView

см. документы:developer.android.com


    <TextView
...
    android:layout_gravity="center"
....
/>

Если в linearlayout ваша ориентация по вертикали, вы можете поместить textview в "горизонтальный центр" по android:layout_gravity="center". Для центрирования textview по вертикали вам нужно установить layout_height textview в match_parent и установить android: gravity в "центр". Если вы хотите использовать более одного представления в этом макете, вы должны использовать RelativeLayout и set android:layout_centerInParent="true".


используйте относительный макет, он всегда дает более точный и гибкий макет

<?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>

set android:gravity="center" в вашем линейном макете