TextView не переносит содержимое, когда текст переносится во второй строке
В следующем почему TextView
у вас есть дополнительное место, когда текст переносится на вторую строку (выделено желтой рамкой на изображении ниже)? Как я могу удалить это?
Расположение:
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
android:layout_gravity="center"
android:layout_weight="2"
android:background="@color/green"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center"
android:layout_weight="1"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:padding="0dp"
android:layout_gravity="center"
android:text="THIS IS FOOOOOOOOOOOOOOO"
android:background="@color/red"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center"
android:layout_weight="1"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:padding="0dp"
android:layout_gravity="center"
android:text="THIS IS FOOOOOOOOOOOOOOO"
android:background="@color/red"
/>
</LinearLayout>
</LinearLayout>
2 ответа
Могли бы попробовать грубую силу. Сначала разбейте текст на строки. Зациклите их, измерьте ширину, если не превышает ширину textView, добавьте к строителю строки, если больше ширины textView, измерьте символ за символом, если не превысите, добавьте к построителю строки, иначе добавьте "\n" к построителю строки. Получите строку этим компоновщиком и установите его в textView.
Фактическая причина этого заключается в том, что вы указали свойство android:layout_weight для LinearLayout. В соответствии с этим разделение макета происходит удалить Android: layout_weight и проверить следующим образом
<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
android:layout_gravity="center"
android:background="@color/green">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:padding="0dp"
android:layout_gravity="center"
android:text="THIS IS FOOOOOOOOOOOOOOO"
android:background="@color/red"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:padding="0dp"
android:layout_gravity="center"
android:text="THIS IS FOOOOOOOOOOOOOOO"
android:background="@color/red"
/>
</LinearLayout>
</LinearLayout>