Java 如何实现具有最大高度和内部滚动的多行文本视图

Java 如何实现具有最大高度和内部滚动的多行文本视图,java,android,android-ui,Java,Android,Android Ui,我想通过以下规则限制TextView在屏幕上的空间大小: 如果文本很短(比如说140个字符或2行),就让它占据所需的空间,但不要再多了 如果文本较长,即段落,请限制视图的最大高度(使用某种最大高度或最大行数) 下面是一些解释有效和无效结果的屏幕截图: 短文本: 中文本: 内部滚动: 空格: 长度过长: 像这样试试 XML 如果您想按行限制TextView的高度,可以使用android:maxLines: <TextView android:layout_width="w

我想通过以下规则限制TextView在屏幕上的空间大小:

  • 如果文本很短(比如说140个字符或2行),就让它占据所需的空间,但不要再多了
  • 如果文本较长,即段落,请限制视图的最大高度(使用某种最大高度或最大行数)
下面是一些解释有效和无效结果的屏幕截图:

短文本:

中文本:

内部滚动:

空格:

长度过长:

像这样试试

XML


如果您想按行限制TextView的高度,可以使用
android:maxLines

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

使用此代码,当文本长度超过最大线时,可以垂直滚动文本视图。

感谢您的回答,为什么使用固定高度60dp?我正在用height=wrap\u content、maxLines=5和setMovementMethod(新的ScrollingMovementMethod())对它进行测试,并且似乎对我糟糕的wrap\u content有用
descTxtView= (TextView) findViewById(R.id.descTxtView);
descTxtView.setMovementMethod(new ScrollingMovementMethod());
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="5"
    android:scrollbars="vertical"
    android:requiresFadingEdge="vertical" />
yourTextView.setMovementMethod(new ScrollingMovementMethod());