43

我有一个可滚动的 textView,我想限制显示的行数,但是 xml 属性不起作用:

<TextView
   android:id="@+id/tv_addesc"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:scrollbars="vertical"
   android:maxLines="12"
   android:textColor="#FFFFFFFF"
   android:textSize="15sp" />

显示的行数为 50,文本中有 900 个字符。

如何限制显示的行数并使其可滚动?

编辑:我测试了 846 行和 15824 个字符,无论设置了不同的属性,都会显示整个文本。

编辑:除了textView还有第二个组件,当我删除它时它起作用了,所以我会找到一个解决方法。谢谢 !

4

7 回答 7

87

您只需要TextView像这样设置多行:

android:maxLines = "10"

您还必须添加:

android:minLines="1"

如果您不使用滚动,其余的就不需要了

和一个属性说这个 TextView 应该可以垂直滚动:

android:scrollbars = "vertical"

在您的 Java 代码中:

yourTextView.setMovementMethod(new ScrollingMovementMethod())
于 2012-10-16T09:49:51.337 回答
3

通过 id 查找您的文本视图:

TextView myTextBox=(TextView)findViewById(R.id.textBox);

现在使用 setMaxLines 函数并在其中分配您需要的行数,例如 20。

myTextBox.setMaxLines(20);

这将您的文本框限制为仅显示 20 行。

于 2015-11-23T10:50:47.260 回答
2

将您的文本视图放在滚动视图中并设置滚动视图的固定高度。

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="120dip" >

    <TextView
        android:id="@+id/tv_addesc"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="12"
        android:scrollbars="vertical"
        android:textColor="#FFFFFFFF"
        android:textSize="15sp" />
</ScrollView>

根据您的需要设置属性

于 2012-10-16T10:06:06.387 回答
2
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="120dip" >

<TextView
    android:id="@+id/tv_addesc"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:maxLines="12"
    android:scrollbars="vertical"
    android:textColor="#FFFFFFFF"
    android:textSize="15sp" />
 </ScrollView>
于 2012-10-16T11:53:08.907 回答
1

嘿尝试将单行属性设置为 false。只是看看它是否有效。

于 2012-10-16T09:59:27.907 回答
1

尝试使用这个。

android:maxLines="12"
android:ellipsize="end"

最后它添加......如果有额外的文字可用。

你也可以使用

android:ellipsize="marquee" 

它会从末尾减少额外的文本,而不是一个单词。

于 2020-05-08T18:52:46.540 回答
0

我按照接受的答案和其他人的说法进行了尝试,但对我没有用,但在添加后android:ellipsize="marquee"它现在可以工作了..

于 2017-11-27T09:29:59.647 回答