2015-06-09 23 views
5

Voglio rendere la mia vista testo multilinea.Come rendere multilinea TextView in Android (Java)

Image: http://s13.postimg.org/y0q78e1yv/Capture.png

Ma come posso fare il mio più righe di testo?

Quale atribut?

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> 
+0

Si prega di fare una piccola ricerca prima di postare tali domande ... –

+0

@ MurtazaKhursheedHussain ho il problema da tre giorni: http: // StackOverflow.it/questions/15032870/create-a-multiline-edittext-programatically ho controllato qualcosa del genere, penso 10-20 siti ma non funziona – mistermm

risposta

3

Si vuole mostrare ai testi diversi nella stessa textview? in tal caso, utilizzare due viste di testo come:

<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 Remote: InputType = "textMultiLine", questo è un EditText Attributo.

Se si desidera utilizzare più di una riga nella stessa vista di testo:

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 

Se questo TextView si desidera utilizzare appartiene ad un controllo ListView, basta usare:

android.R.layout.simple_list_item_2 

E ' ti fornirà due visualizzazioni di testi su cui lavorare.

+0

Grazie per il tuo anser, ora ho cambiato tutto in layout lineare: http://s27.postimg.org/9mtnp5f3z/Capture.jpg?noCache=1433860180 nella foto vedi 3 righe, la prima è hardcoded, e il secondo e il terzo è con il mio codice da special_textview (è la stessa textview del tipo hardcoded) – mistermm

-1

sufficiente rimuovere questa linea:

android:inputType="textMultiLine" 

InputType per EditTexts

+0

no, questo non funziona:/è la stessa vista – mistermm

0

Il TextView deve avere l'attributo 'SingleLine' impostato su false. Inoltre si dovrebbe impostare la 'ellipsize' per avvolgere il testo:

android:singleLine="false" 
android:ellipsize="end" 
+0

ora, alla fine 3 punti appare, ma anche su una riga :( – mistermm

1

si può fare in questo modo:

txt_tweet.setSingleLine(false); 
txt_tweet.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); 
+1

non funziona anche ... – mistermm

+0

Non ho capito la soluzione in questo post .... – delive

0

nel layout

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

non funziona può essere con la vista del tavolo? – mistermm

1

ho fatto come segue:

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

Dopo aver provato molti t questa risposta ha funzionato per me. –

1

Prima sostituire "\n" con il suo equavalent Html "&lt;br&gt;" quindi chiamare Html.fromHtml() sulla corda. Segui i passaggi seguenti:

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

Questo funziona perfettamente.

0

In aggiunta alle risposte: l'ordine conta!

Assicurarsi di chiamare setInputType prima di setMinLines!