0

下面为什么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>
4

2 回答 2

0

实际原因是您将 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>
于 2019-06-14T08:31:46.583 回答
0

可以尝试一些蛮力。首先将文本拆分为行。循环它们,测量宽度,如果不超过 textView 的宽度,则附加到字符串生成器,如果大于 textView 的宽度,逐个字符测量,如果不超过,附加到字符串生成器,否则附加一个“\n”到字符串生成器。通过此构建器获取字符串并将其设置为 textView。

于 2019-06-14T08:12:08.467 回答