如何实现具有最大高度和内部滚动的多行TextView

时间:2014-10-10 08:28:37

标签: java android android-ui

我希望使用以下规则限制TextView在屏幕上可以占用的空间量:

  • 如果文字很短(比方说140个字符或2行),则需要尽可能多的空间而不是更多。
  • 如果文字很长,即段落,则限制视图的最大高度(使用某种maxHeight或最大行数)

这里有一些解释有效和无效结果的屏幕截图:

短文:

enter image description here

中文:

enter image description here

内部滚动:

enter image description here

空格:

enter image description here

过长:

enter image description here

2 个答案:

答案 0 :(得分:8)

试试这样。

XML

<TextView
   android:id="@+id/descTxtView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:maxLines="5"
   android:scrollbars="vertical"
   android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&apos;s standard dummy text ever since the 1500s."
   android:textColor="#232e3b"
   android:typeface="sans" />
在JAVA中

descTxtView= (TextView) findViewById(R.id.descTxtView);
descTxtView.setMovementMethod(new ScrollingMovementMethod());

答案 1 :(得分:3)

如果您想逐行限制TextView的高度,请使用android:maxLines

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="5"
    android:scrollbars="vertical"
    android:requiresFadingEdge="vertical" />

在您的代码中,写如下:

yourTextView.setMovementMethod(new ScrollingMovementMethod());

使用此代码,当文本长于maxLines时,TextView可以垂直滚动。