Как центрировать двухстрочный текст в TextView на Android?

Я хочу, чтобы он выглядел так:

|    two    |
|   lines   |

Вот текущий макет, не работающий вообще.

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="two\nlines"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true"/>
</RelativeLayout>

Любая идея? Спасибо!

Ответ 1

Если вы просто хотите сосредоточить его (я предполагаю, что \n работает, чтобы разделить строки), просто добавьте android:gravity="center_horizontal", а не layout_gravity.
Использование макета гравитации перемещает фактический TextView, используя гравитацию, влияет на контент TextView.

Ответ 2

Пришлось добавить как gravity, так и layout_gravity для выравнивания TextView и его содержимого

android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"

Ответ 3

Вы можете использовать:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two"+"\n"+"lines"));

Ответ 4

Я думаю, вы должны сделать это с Java:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">
    <TextView
        android:id="@+id/the_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true"/>
</RelativeLayout>

Тогда:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two<br/>lines"));

Ответ 5

если ваша ширина - wrap_content, вы должны установить гравитацию и layout_gravity как "center_horizontal"

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="two\nlines"
    android:layout_gravity="center_horizontal"
    android:gravity="center_horizontal"/>

Однако, если ваша ширина "match_parent", вам нужно будет установить гравитацию как "center_horizontal"

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="two\nlines"
    android:gravity="center_horizontal"/>

Надеюсь, что это поможет!

Ответ 6

Добавить свойство

android:lines="2"

где 2 нет строк, вы можете установить это как ваше требование