Как центрировать текст по горизонтали и вертикали в TextView? - PullRequest
1848 голосов
/ 11 января 2009

Как отцентрировать текст по горизонтали и вертикали в TextView, чтобы он отображался точно в середине TextView в Android?

Ответы [ 64 ]

0 голосов
/ 10 мая 2019

Если у вас есть только один TextView в вашем XML-файле, тогда вы можете сделать так, чтобы родительский вид был центром тяжести. Это сделает ваш дочерний элемент в центре экрана, а затем вы можете сделать так, чтобы ваш дочерний элемент отображался как по высоте, так и по ширине.

0 голосов
/ 20 июля 2016
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Tours"
        android:id="@+id/textView" />
0 голосов
/ 20 марта 2018

Используйте свойство гравитации в TextView для центрирования текста по вертикали и горизонтали.

android:gravity="center"
0 голосов
/ 13 ноября 2017

Вы можете центрировать текстовое представление, используя android: gravity = "center"

Код выглядит следующим образом

    <TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center" />
0 голосов
/ 18 декабря 2017

Как центрировать вид или его содержимое, например, TextView или кнопка горизонтально и вертикально? layout_gravity может использоваться для позиционирования вид в центре своего родителя. В то время как атрибут гравитации используется для содержимое просмотра позиции, например «Текст» в центре вида.

(1) Центр TextView по горизонтали

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</LinearLayout>

(2) Центр TextView по вертикали

android: layout_gravity = "center_vertical", доза не работает !!

Чтобы отцентрировать TextView по вертикали, нужно сделать трюк. Поместите TextView в RelativeLayout, затем установите атрибут TextView android: layout_centerInParent = ”true” enter image description here

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_centerInParent="true"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</RelativeLayout>

(3) Центр текста по горизонтали

андроид: гравитация =»center_horizontal"

enter image description here

(4) Центрировать текст по горизонтали и вертикали

android: gravity = ”center”, текст будет располагаться по горизонтали и вертикально * * 1 047

enter image description here

<TextView
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:text="Hello World!"
    android:gravity="center"
    android:background="#333"
    android:textColor="#fff"
    />
0 голосов
/ 14 декабря 2017

В ConstraintLayout для любого представления:

(Когда вы используете макет ограничения, установите высоту и ширину равными 0 и разрешите ограничению управлять границами вида.)

<View
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
0 голосов
/ 16 февраля 2019

Попробуйте это:

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" />
0 голосов
/ 18 августа 2016

А для тех, кто интересуется, как центрировать его вертикально в элементе TextView, удерживая его слева (горизонтально):

android:gravity="center"
android:textAlignment="viewStart"
0 голосов
/ 26 марта 2019

Попробуйте это:

Использование LinearLayout, если вы используете высота и ширина текстового обзора match_parent Вы можете установить гравитацию текста по центру и выравнивание текста по центру текста по горизонтали , если вы используете высоту и ширину текста просмотра затем добавьте атрибут центра тяжести в свой LinearLayout.

XML-код

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textAlignment="center"
    android:gravity="center"
    android:textColor="#000"
    android:textSize="30sp"
    android:text="Welcome to Android" />
    </LinearLayout>

Java-код

Вы можете программно сделать так: -

(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

Спасибо

0 голосов
/ 08 мая 2018

используйте android: gravity = "center" to parent

<LinearLayout
    android:layout_width="200dp"
    android:layout_height="200dp"

    android:gravity="center"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello world"
        />
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...