2011-10-07 11 views
11

Desidero impostare il margine di avvio solo per la prima riga di TextView (Non prima riga di ogni paragrafo)? Ho usato il seguente codice:margine impostato sulla prima riga di testoView

SpannableString s = new SpannableString("this is a test"+"\n"+"this is a test"); 
s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, s.length(), 0); 
textView .setText(s); 

Qui il margine di avvio si sta impostando per tutte le righe del paragrafo. Non lo voglio. Voglio il margine iniziale da applicare solo per la prima riga .. Pls help ..

+1

Penso che sia necessario utilizzare solo lo spazio bianco .. – Hiral

+0

c'è qualche altro modo? – ShineDown

+2

quindi puoi prendere due visuali di testo separate: 1 per il 1 ° paragrafo e altre per quelle rimanenti. imposta l'intervallo per la prima visualizzazione di testo e lascia che siano gli altri come sono. penso, tu non hai nessun altro modo. – Hiral

risposta

2

Come è stato suggerito qui, penso anche che la soluzione migliore sia semplicemente aggiungere pochi spazi all'inizio. Se hai solo bisogno dello spazio di margine nella prima riga di TextView, non vedo alcun motivo per cui avresti bisogno di fare qualcosa di veramente avanzato.

Se è necessario modificare o utilizzare il testo nel TextView in un secondo momento, si può semplicemente utilizzare il metodo substring() per ottenere solo una parte della stringa, cioè s.substring(2, s.length());

Non è una soluzione perfetta, ma Penso che lo farà.

+0

Il problema è che i caratteri di diff hanno bisogno di una lunghezza diversa dell'interfaccia utente per mostrare, (es: 'm' ha bisogno di più lunghezza di 'i'), e una lunghezza di spazio non è uguale a tutta la lunghezza dei caratteri. –

5

In realtà hai già risposto alla tua domanda.
Tutto ciò che devi fare è impostare l'intervallo di lunghezza su 1 invece di s.length().

if (s.lenght() > 0) { 
    s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, 1, 0); 
} 

In questo modo il margine verrà applicato solo al primo paragrafo.

Problemi correlati