2012-03-20 20 views
7

La prima volta che ho notato questo era con AlertDialogs che metteva l'intero messaggio sulla prima riga, anche quando ho specificato una nuova riga ("\ n"). Su ICS viene visualizzato il modo corretto, ma per la vita di me, non ho potuto farlo funzionare su GB.Il testo lungo passa alla riga successiva su ICS, ma non su GB e sotto

Recentemente ci ho provato di nuovo. Non vedo alcun motivo perché funzioni correttamente su ICS ma non su GB e sotto.

ESEMPIO Progetto

Ecco un esempio di progetto con un TextView, alertdialog, e due textviews standard.

https://github.com/T3hh4xx0r/Text-Example

EDIT

Heres alla domanda originale ho chiesto. Sembra che il problema sia più di quanto inizialmente avessi notato.

Android AlertDialog not displaying entire setMessage on certain devices

/EDIT

Ecco esempi visivi di ciò che intendo. enter image description here

Anche specificando più righe per la visualizzazione testo, il testo è ancora una riga, ma con righe vuote aggiuntive di seguito.

+0

Ho trovato che su dispositivi con un trackpad o qualcosa di simile posso impostare l'ellipsize sul riquadro di selezione e abilitare lo scorrimento orizzontale, ma funziona solo se l'utente usa il trackpad per selezionarlo. Non c'è modo di farlo con touch afaik. – r2DoesInc

+0

Anche ottenuto lo scorrimento di tutto ora. È una soluzione, ma mi piacerebbe ancora sapere cosa lo sta effettivamente causando. – r2DoesInc

+0

Qualcuno non è stato in grado di riprodurlo su stock froyo. Il panpepato è l'unica cosa che posso garantire oggi. – r2DoesInc

risposta

6

Ecco il layout che l'alertdialog sta usando per creare la visualizzazione:

<!-- 
    This layout file is used by the AlertDialog when displaying a list of items. 
    This layout file is inflated and used as the TextView to display individual 
    items. 
--> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="@android:color/primary_text_light_disable_only" 
    android:gravity="center_vertical" 
    android:paddingLeft="14dip" 
    android:paddingRight="15dip" 
    android:ellipsize="marquee" 
/> 

Come si può vedere l'ellipsize è impostato su tendone, quindi non credo che sia mai stato scritto con l'intento di consenti le multiline.

C'è un bug aperto nel momento in cui ellisse punti non vengono mai mostrati: http://code.google.com/p/android/issues/detail?id=10554

Pertanto essa agisce in modo corretto.

Se vuoi che vada su più righe, crea il tuo file di layout e passalo alla finestra di dialogo, in questo modo hai comunque più controllo.

+0

perché funziona su ics? usa più linee lì semplicemente bene. – r2DoesInc

+0

Dovresti controllare l'implementazione del codice sorgente di TextView/Attributes/elllize per vedere cosa è cambiato. – Blundell

Problemi correlati