web-dev-qa-db-ja.com

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>
7
mistermm

同じテキストビューで異なるテキストに表示したいですか?その場合は、次のような2つのテキストビューを使用します。

<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"、これはEditTextAtributeです。

同じテキストビューで複数の行を使用するだけの場合:

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

作業する2つのテキストビューが表示されます。

4
Kamila Brito

私は次のようにそれをしました:

tv.setElegantTextHeight(true);
tv.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
tv.setSingleLine(false);

最初に「_\n_」をそのHtmlと同等の「_&lt;br&gt;_」に置き換えてから、文字列でHtml.fromHtml()を呼び出します。以下の手順に従ってください。

_String text= model.getMessageBody().toString().replace("\n", "&lt;br&gt;")
textView.setText(Html.fromHtml(Html.fromHtml(text).toString()))
_

これは完全に機能します。

1
Gulzar Bhat

答えに追加する:順序が重要です!

必ずsetInputType before setMinLinesを呼び出してください!

1
Simon Ninon

あなたはこのようにそれを行うことができます:

txt_Tweet.setSingleLine(false);
txt_Tweet.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
1
Ezzored

レイアウトで

Android:lines="8"  //Total Lines prior display
Android:minLines="6" //Minimum lines
Android:maxLines="10" //Maximum Lines
0

TextViewでは、「singleLine」属性をfalseに設定する必要があります。また、テキストを折り返すように「ellipsize」を設定する必要があります。

Android:singleLine="false"
Android:ellipsize="end"
0
Chaoz