2010-06-21 28 views
5

Bir mx: TextArea'm var ve onun yüksekliğinin içerik yüksekliği ile aynı olmasını istiyorum. Hiçbir şey fantezi değil - sadece bir metin alanı ve düzenlenebilir olmayan bir metin. Kontrolü uygun hale getirmek ve tüm metni dikey kaydırma olmadan göstermek için basit ve güvenilir bir yönteme ihtiyacım var - otomatik yeniden boyutlandırma gibi bir şey. Ayrıca, kontrolümün metni sadece bir kez ayarlanacak ve düzenlenebilir olmadığı için değişmeyecek.TextArea yüksekliğini içerik yüksekliğine göre ayarlama

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

biri aynı konuyla ilgili daha fazla sonrası here yoktur ama stil ve bağlayıcı içerdiğinden kurulumu çok daha karmaşık olduğu için bunun benimle alakalı değil.

+0

Olası kopyası: http://stackoverflow.com/questions/5672402/spark-textarea-or-richtext-autosize – ggkmath

cevap

-1

Kaydırma politikasına ek olarak "wordWrap = 'true'" ile oynamanızı öneririm.

+0

Hayır, öyle değil. Word wrap, yalnızca kabın genişliğini aşarsa metni yalnızca yeni bir satıra aktarır. Diğerleri için –

3

kullanımlar textHeight salt okunur TextArea malı ve TextArea.textHeight + olduğu TextArea yüksekliğini ayarlamak ne olursa olsun dikey doldurma TextArea kullanımları artı üst ve alt sınırların yüksekliği (TextArea bileşeni ve şekil incelemek olanlar). Bu işlem, TextArea için change etkinliğine eklediğiniz bir işleyicide gerçekleşmelidir. Eğer kıvılcım metin alanı bileşeni ile sopa isterseniz

+0

not: 'textHeight' özelliği, kıvılcım bileşenlerinde mevcut değildir. Bunun yerine, yalnızca TextArea özelliğini 'heightInLines = {NaN}' öğesini mxml (veya AS3'te NaN) olarak ayarlayın. Bakınız: http://blog.flexexamples.com/2010/01/18/creating-a-vertically-auto-resizing-spark-textarea-control-in-flex-4/ – ggkmath

2

şu kodu kullanın:

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

Veya bir işlevde bir değişiklik işleyicisi koyabilirsiniz.

+1

Bu, HTML Metni kullanarak Mobile üzerinde çalışmaz . – JeffryHouser

+0

Metin kodla ayarlandığında normal projelerde bile çalışmaz. "updateComplete" olayına yüksekliği uyarlamayı öneririm. –

+0

özniteliği "change" harika çalışıyor :) –