2010-06-21 24 views
5

Ho un mx: TextArea e voglio che l'altezza sia uguale all'altezza del contenuto. Non c'è niente di speciale: solo un'area di testo e un testo che non è modificabile. Ho bisogno di un modo semplice e affidabile per rendere il controllo in forma e mostrare tutto il testo senza scorrimento verticale - qualcosa come il ridimensionamento automatico. Anche il testo del mio controllo verrà impostato una sola volta e non cambierà in quanto non sarà modificabile.Come impostare l'altezza di TextArea sull'altezza del contenuto

<mx:TextArea id="myTextArea" 
      editable="false" 
      width="100%" 
      verticalScrollPolicy="off" > 
    <mx:text> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id lorem 
     quis ante pulvinar auctor at eget risus. Nulla facilisi. Morbi ultricies 
     dignissim lorem, quis suscipit felis ullamcorper et. 
    </mx:text> 
</mx:TextArea> 

C'è uno più post here sullo stesso argomento, ma non è rilevante per me, perché la messa a punto non v'è molto più complicato in quanto comprende styling e vincolante.

+0

Possibile duplicato di: http://stackoverflow.com/questions/5672402/spark-textarea-or-richtext-autosize – ggkmath

risposta

-1

Suggerirei di giocare con "wordWrap = 'true'" oltre alla politica di scorrimento.

+0

No, non è quello. A capo automatico verrà trasferito il testo solo su una nuova riga se supera la larghezza del contenitore. –

3

Utilizzare il textHeight proprietà di sola lettura del TextArea, e impostare l'altezza della TextArea essere TextArea.textHeight + qualunque padding verticale le TextArea usi più l'altezza dei bordi superiore e inferiore (esamina il componente e la figura TextArea quelli fuori). Questo processo dovrebbe verificarsi in un gestore aggiunto all'evento change per il numero TextArea.

+0

note per gli altri: la proprietà 'textHeight' non è disponibile sui componenti spark. Invece, imposta semplicemente la proprietà TextArea 'heightInLines = {NaN}' in mxml (o = NaN in AS3). Vedi: http://blog.flexexamples.com/2010/01/18/creating-a-vertically-auto-resizing-spark-textarea-control-in-flex-4/ – ggkmath

2

utilizzare il seguente codice se si desidera rimanere con il componente scintilla area di testo:

<s:TextArea 
    id="myTextArea" 
    editable="false" 
    width="100%" 
    verticalScrollPolicy="off" 
    change="myTextArea.height = myTextArea.scroller.viewport.contentHeight + 2;"> 
    <s:text> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla id lorem 
     quis ante pulvinar auctor at eget risus. Nulla facilisi. Morbi ultricies 
     dignissim lorem, quis suscipit felis ullamcorper et. 
    </s:text> 
</s:TextArea> 

Oppure si può mettere il gestore variazione di una funzione.

+1

Questo non funziona su Mobile utilizzando testo HTML . – JeffryHouser

+0

Non funziona nemmeno nei normali progetti quando il testo viene impostato tramite il codice. Suggerisco di adattare l'altezza sull'evento 'updateComplete'. L'attributo 'change' –

+0

funziona alla grande :) –

Problemi correlati