TextView中的文本未以多行显示 - 它在一行中被截断

时间:2011-09-28 18:26:40

标签: android android-layout textview

下面是我的布局大纲。我将ScrollView放在另一个LinearLayout中,因为我会在运行时向它添加更多视图。

无论如何,问题是 - TextView中的文本总是被截断为单行,并且永远不会以多行显示。

有没有办法让它显示多线TextViw而不必使用android:lines或android:maxLines设置任意数量的行?

感谢。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent" android:layout_height="fill_parent"
          android:orientation="vertical" android:background="@drawable/background"
          android:id="@+id/XyzLayout"
          android:paddingRight="10dp">

    <ScrollView android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:background="@drawable/background"
            android:fillViewport="true">

        <LinearLayout android:layout_width="fill_parent"
                  android:layout_height="wrap_content" android:orientation="vertical"
                  android:layout_marginBottom="0dip" android:layout_marginTop="1dip">

            <TextView android:id="@+id/textView1"
                  android:text="@string/String1"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="10dip"
                  android:layout_marginTop="20dip"
                  android:layout_marginRight="10dip" android:textSize="18dip"
                  android:typeface="sans" android:textStyle="bold"
                  android:layout_marginBottom="4dip"
                  android:inputType="text|textMultiLine"/>

            <TextView android:id="@+id/textView2"
                  android:text="@string/String2"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="10dip"
                  android:layout_marginTop="20dip"
                  android:layout_marginRight="10dip" android:textSize="16sp"
                  android:typeface="sans" android:textStyle="bold"
                  android:layout_marginBottom="4dip"
                  android:inputType="text|textMultiLine"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

5 个答案:

答案 0 :(得分:2)

我遇到了带有CM7(2.3.7)的i5800和仿真器的问题,并且在带有CM9(4.0.3)的SGS-i9000上工作正常。

问题是在清单上设置主题:

 <application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.DeviceDefault" >

我把“android:theme =”@ android:style / Theme.Holo“,如果设备没有,那么textview不允许使用MultiLine。

您可以使用“holoeverywhere”库将holo主题移植到所有设备。

问候。

答案 1 :(得分:1)

尝试删除设置android:inputType="text"

刚遇到同样的问题。我有android:multiLines="2",然后我尝试android:lines="2",然后尝试添加android:singleLine="false",但我的 EditText 只会显示一行。我可以水平滚动到达我的行尾。最终工作的是删除设置android:inputType="text"。这允许我输入一条长线,它将换行到第二行。

答案 2 :(得分:0)

默认情况下可能是假的,但您是否尝试在TextView

中添加此内容
 android:singleLine="false"

-serkan

答案 3 :(得分:0)

添加到@ KNU的答案......

这是一个很好的相关答案,表明您可以根据其运行的Android 版本使用不同的主题 - 只需创建一个版本化的样式文件夹。

在这里回答:TextView won't break text

答案 4 :(得分:0)

将输入类型设置为inputType =“ text | textMultiLine”。这样可以解决我的问题。

<TextView
    android:id="@+id/itemTitle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="text|textMultiLine"
    android:textSize="@dimen/text_size_12"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="Your Text Here"/>