Как установить TextArea высоту для его содержимого высоты - PullRequest
5 голосов
/ 21 июня 2010

У меня есть mx: TextArea, и я хочу, чтобы его высота равнялась высоте его содержимого. В этом нет ничего фантастического - только текстовая область и текст, который нельзя редактировать. Мне нужен простой и надежный способ подогнать элемент управления и показать весь текст без вертикальной прокрутки - что-то вроде автоматического изменения размера. Кроме того, текст моего элемента управления будет установлен только один раз и не изменится, поскольку он не будет редактироваться.

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

Есть еще один пост здесь на ту же тему, но он не относится ко мне, потому что настройка там намного сложнее, так как включает в себя стилизацию и привязку.

Ответы [ 4 ]

3 голосов
/ 22 июня 2010

Используйте свойство textHeight только для чтения TextArea и установите для высоты TextArea значение TextArea.textHeight + независимо от того, какой вертикальный отступ используется TextArea, плюс высоту верхней и нижней границ (проверьтеTextArea компонент и выяснить это).Этот процесс должен происходить в обработчике, который вы добавляете в событие change для TextArea.

3 голосов
/ 23 сентября 2011

Используйте следующий код, если вы хотите придерживаться компонента текстовой области свечи:

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

Или вы можете поместить обработчик изменений в функцию.

0 голосов
/ 28 декабря 2018

У меня большой успех с Скрипт Джека Мура для авторазмера . Это легкий и может быть реализован на всех ваших текстовых областях только одной строкой: autosize($('.MyTextAreaClass'));

0 голосов
/ 21 июня 2010

Я бы предложил поиграть с "wordWrap = 'true'" в дополнение к политике прокрутки.

...