20

我想知道如何在不硬编码 XML 中的宽度的情况下TextView在几行上显示其内容。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="false"
            android:text="Long multiline text"/>

        <TextView
            android:textColor="@color/text_color"
            android:layout_width="130dp"
            android:layout_height="wrap_content"
            />

    </LinearLayout>

欢迎任何想法。

编辑:我的问题是,当文本超过设置的宽度时(因为它到达屏幕的末尾),部分文本不会显示。我希望文本分成两行

4

4 回答 4

24

虽然我无法重现未换行的问题,但您可以通过weight在第一个上使用 a 来解决定位问题TextView。使用以下 XML 在 Eclipse 的图形布局视图中提供预期的输出:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:orientation="horizontal">

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:singleLine="false"
        android:text="Long multiline text"/>

    <TextView
        android:textColor="@color/text_color"
        android:layout_width="130dp"
        android:layout_height="wrap_content"
        />

</LinearLayout>
于 2013-03-06T22:51:11.860 回答
3

还添加

android:minLines="2"
android:scrollHorizontally="false"
于 2017-07-06T12:30:32.707 回答
0

你可以试试

android:inputType="textMultiLine"

在您的 TextView XML 中。这对我有用。

于 2016-08-31T16:43:25.880 回答
0

我想我有非常相似的问题。我有TextView一个文本,我不确定它需要多少行。它被封装为LinearLayout必须android:layout_width="match_parent"确保我的文本将水平填充所有空间。但是,问题是我的文本不适合 1 行,当它确实分成新行时,它下面的下一个视图组件没有向下移动以提供足够的空间让第二行完全可见。

我可以通过将LinearLayout包含 my的内容更改TextViewRelativeLayout. 通过这种方式,文本下方的元素(实际上是布局本身下方)被自动移动,以便为多行文本提供足够的空间。

于 2019-04-22T00:53:23.790 回答