如何根据String的大小自动调整TextView的高度?

How to automatically adjust the TextView height according to the size of the String?

我想知道如何根据String的长度自动调整TextView的大小。我从另一个 Intent 获取一些数据作为 String 并将其存储在 TextView 中。如果我让它变小,整个文本将放不下,只会显示一半。如果我为 TextView 留下一个大的 space 它在屏幕上看起来不太好。

我在网上找到的解决方案是使用 extends TextView 并且使用此方法在我的 class 中出现错误,因此我不得不更改很多功能

使用多行TextView并将layout_height设置为wrap_content:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="false"/>

注意:如果您将 layout_width 设置为 wrap_content,它将无法正常工作。如果您不希望 TextView 占据父视图的整个宽度,则可以:

  • 在XML或
  • 中将其设置为固定宽度
  • 以编程方式设置宽度,或者
  • RelativeLayout
  • 中设置layout_alignLeft/layout_alignRight
  • layout_width 设置为 0dp 并在 LinearLayout
  • 中使用 layout_weight

如果您正在使用 xml 文件,只需执行此操作,

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="false"/>

如果你想动态地这样做,

TextView textView= new TextView(activity);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(param);