Проблема с макетом Flex 3 UITextField - PullRequest
0 голосов
/ 13 октября 2010

Я использую Flex 3, SDK 3.2.

У меня проблемы с определением высоты UITextField. (К сожалению, я должен использовать UITextField, потому что я использую FlashEff 2.0. В противном случае, я бы использовал другой компонент).

У меня есть UITextfield, которое является многострочным и имеет WordWrap. Текст извлекается из базы данных, поэтому длина меняется. У меня есть RadioButtonGroup под UITextField.

Мои цели:

  1. Чтобы сохранить UITextField от врезаться в радиоButtonGroup VBox.

  2. Чтобы изменить y положение радиоButtonGroup основанный на высоте UITextField.

  3. Для создания окна TitleW Переменная высота. UITextField и радиоButtonGroup находятся в TitleWindow. Я бы хотел изменить высоту окна TitleWindow на основе содержимого внутри.

В данный момент я установил y у radioButtonGroup в TitleWindow, чтобы содержимое UITextField не перекрывалось. Но когда в UITextField не так много текста, я получаю огромный разрыв между VBox и RadioButtonGroup.

Если я не укажу TitleWindow высоту, то UITextField растянется до чего-то вроде 2000 пикселей.

Я гуглил и, насколько я могу судить, высота UITextField ведет себя странно.

Кто-нибудь знает, как решить эту проблему?

Я создаю UITextField следующим образом:

public var tf: UITextField = new UITextField;

1035 *

tf.autoSize = TextFieldAutoSize.LEFT;

tf.embedFonts = true;

tf.multiline = true;

tf.text = myText;

tf.width = 440;

tf.wordWrap = true;

var myFormat: TextFormat = new TextFormat;

myFormat.size = 25;

myFormat.blockIndent = 53;

* +1054 * this.addChild (тс);

tf.validateNow (); * * тысяча пятьдесят семь * * Tf.setTextFormat тысяча пятьдесят восемь (myFormat); * +1059 *

Мой VBox выглядит так:

<mx:VBox  id="radioVBox" x="180" y="220">

     <mx:RadioButtonGroup id="myRadioButtonGroup" itemClick="goClickHandler(event);"/>

     <mx:RadioButton  groupName="myRadioButtonGroup" label="A"  fontSize="17" />

     <mx:RadioButton  groupName="myRadioButtonGroup" label="B"  fontSize="17" />

     <mx:RadioButton  groupName="myRadioButtonGroup" label="C"  fontSize="17" />

     <mx:RadioButton  groupName="myRadioButtonGroup" label="D"  fontSize="17" />

     <mx:RadioButton  groupName="myRadioButtonGroup" label="E"  fontSize="17" />

И все это завернуто в TitleWindow, которое выглядит так:

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 

     layout="absolute" 

     width="520"  

     height="450"

     verticalScrollPolicy="off" 

     horizontalScrollPolicy="off" 
     >

Есть предложения?

Спасибо.

-Laxmidi

1 Ответ

0 голосов
/ 14 октября 2010

Рталтон выручил меня.

Я понял, что radioVBox смещается вверх и перекрывает MainBox, потому что UITextField является динамическим и имеет эффект FlashEff2.По сути, высота MainBox равна 0, когда рассчитывается макет radioVBox.

Итак, я добавляю UITextField к одному VBox.Ниже у меня есть радиоVBox.Я установил видимость radioVBox на false.Затем я добавил eventListener, когда закончился эффект FlashEff2, который вызвал функцию, которая включила видимость radioVBox.Также в функции я установил: radioVBox.y = (tf.y + tf.height + 40) ;.Наконец, я установил высоту TitleWindow следующим образом: height = "{radioVBox.y + 270}"

Спасибо.

-Laxmidi

...