如何在 Android (Java) 中以编程方式制作 TextView 多行
How to make a TextView multiline programmatically in Android (Java)
我想让我的 textview 多行。
图片:http://s13.postimg.org/y0q78e1yv/Capture.png
但是我怎样才能让我的文本多行呢?
哪个属性?
TextView txt_tweet = (TextView) View.inflate(this, R.layout.special_textview, null);
special_textview
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="5dp"
android:inputType="textMultiLine"
android:scrollHorizontally="false">
</TextView>
只需删除这一行:
android:inputType="textMultiLine"
EditText 的输入类型
TextView 必须将 'singleLine' 属性设置为 false。您还应该设置 'ellipsize' 来换行文本:
android:singleLine="false"
android:ellipsize="end"
你可以这样做:
txt_tweet.setSingleLine(false);
txt_tweet.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
布局中
android:lines="8" //Total Lines prior display
android:minLines="6" //Minimum lines
android:maxLines="10" //Maximum Lines
您想在同一个文本视图中显示不同的文本吗?如果是这样,请使用两个文本视图,例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
远程android:inputType="textMultiLine",这是一个EditText属性。
如果您只想在同一个文本视图中使用不止一行:
android:maxLines="5"//optional to set max numbers of lines
android:minLines="2"//optional to set min numbers of lines
android:singleLine="false"//set false to allow multiple line
android:lines="2" //or more
如果您要使用的文本视图属于 ListView,只需使用:
android.R.layout.simple_list_item_2
它将为您提供两个文本视图供您处理。
我是按照以下方式做的:
tv.setElegantTextHeight(true);
tv.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
tv.setSingleLine(false);
首先将“\n
”替换为其 Html 等价物“<br>
”,然后在字符串上调用 Html.fromHtml()
。按照以下步骤操作:
String text= model.getMessageBody().toString().replace("\n", "<br>")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))
这非常有效。
添加答案:顺序很重要!
确保在 setMinLines!
之前调用 setInputType
我想让我的 textview 多行。
图片:http://s13.postimg.org/y0q78e1yv/Capture.png
但是我怎样才能让我的文本多行呢?
哪个属性?
TextView txt_tweet = (TextView) View.inflate(this, R.layout.special_textview, null);
special_textview
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="5dp"
android:inputType="textMultiLine"
android:scrollHorizontally="false">
</TextView>
只需删除这一行:
android:inputType="textMultiLine"
EditText 的输入类型
TextView 必须将 'singleLine' 属性设置为 false。您还应该设置 'ellipsize' 来换行文本:
android:singleLine="false"
android:ellipsize="end"
你可以这样做:
txt_tweet.setSingleLine(false);
txt_tweet.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
布局中
android:lines="8" //Total Lines prior display
android:minLines="6" //Minimum lines
android:maxLines="10" //Maximum Lines
您想在同一个文本视图中显示不同的文本吗?如果是这样,请使用两个文本视图,例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
远程android:inputType="textMultiLine",这是一个EditText属性。
如果您只想在同一个文本视图中使用不止一行:
android:maxLines="5"//optional to set max numbers of lines
android:minLines="2"//optional to set min numbers of lines
android:singleLine="false"//set false to allow multiple line
android:lines="2" //or more
如果您要使用的文本视图属于 ListView,只需使用:
android.R.layout.simple_list_item_2
它将为您提供两个文本视图供您处理。
我是按照以下方式做的:
tv.setElegantTextHeight(true);
tv.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
tv.setSingleLine(false);
首先将“\n
”替换为其 Html 等价物“<br>
”,然后在字符串上调用 Html.fromHtml()
。按照以下步骤操作:
String text= model.getMessageBody().toString().replace("\n", "<br>")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))
这非常有效。
添加答案:顺序很重要!
确保在 setMinLines!
之前调用 setInputType