вирівняйте текстовий центр з Android


150

Я знаю, це звучить легко. Мені потрібно покласти текст у центр, але коли текст занадто довгий, його потрібно піти внизу, але все ж вирівняти в центрі мого xml.

Ось мій код:

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_centerHorizontal="true"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

Я ставлю paddingTop і Bottom, тому що мені потрібно трохи місця. PS: Мій код більший; це у відносному макеті.


Тут ви не використовували жодного стилю тексту
Дініт

Відповіді:


381

Також встановіть android:gravityпараметр TextViewв center.

Для тестування ефектів різних параметрів компонування я рекомендую використовувати різний колір фону для кожного елемента, щоб ви могли бачити, як змінюється ваш макет з такими параметрами, як гравітація, layout_gravity або інші.


Дякую, це спрацювало, просто потрібен якийсь час, щоб підтвердити свою відповідь!
Цуназе

Так, це правда. Але я думаю, лише якщо TextView має більше одного рядка. Оскільки лише з 1
неповним

Ви можете уникнути цього, встановивши андроїд TextView: layout_width = "fill_parent"
peter.bartos

2
Не плутати з android:layout_gravity. До! :)
Джошуа Пінтер


21

використовувати цей спосіб у xml

   <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Time is precious, so love now."
        android:gravity="center"
        android:textSize="30dp"
        android:textColor="#fff"
        />

7

Ви можете використовувати наступне:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">

 <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Your text"
        android:typeface="serif" />
</LinearLayout>

Макет повинен бути відносним для властивості "центр", яка буде використовуватися.


5

Додавання android:gravity="center"у ваш TextView зробить трюк (будьте батьківський макет Relative/Linear)!

Також вам слід уникати використання dp для розміру шрифту. Замість цього використовуйте sp.


3

додайте layout_gravity та гравітацію із центральним значенням у TextView

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />


1
android:layout_gravity="center"

або

android:gravity="center"

обидва працюють для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.