我有一些与TextView高度相关的关键问题。我想根据运行时设置的内容设置TextView的高度。这是我的xml代码: -
<TextView android:id="@+id/tv"
android:layout_width="fill_parent" android:layout_height="wrap_content"/>`
以下是设置TextView高度的java代码:
TextView tv = (TextView) findViewById(R.id.tv);
tv.invalidate();
int height_in_pixels = tv.getLineCount() * tv.getLineHeight();
tv.setHeight(height_in_pixels);
但问题是它只显示1行,而不显示其余行。
答案 0 :(得分:3)
在Java代码中:
TextView tv =(TextView)findViewById(R.id.tv);
tv.invalidate();
int height_in_pixels = tv.getLineCount() * tv.getLineHeight();
tv.setHeight(height_in_pixels);
这些行在java代码中是不受欢迎的。在xml本身中,您提到了layout_height="wrap_content"
。那么为什么你再次设置TextView
的高度。并确保android:singleLine="false"
中的<textview>
。如果您未设置任何内容,则其默认值为false。
答案 1 :(得分:1)
但问题是;它只显示 1行,而不是其余的行。
我认为最好的解决方案是在“ScrollView”中定义textview。
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:text="@+id/TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</ScrollView>
</LinearLayout>