измерьте высоту гибкого компонента, чтобы заполнить пространство, доступное на сцене - PullRequest
3 голосов
/ 26 июня 2009

Я пытаюсь создать макет в flex, используя mxml, макет содержит компонент Canvas и Box. Макет всегда должен быть таким, чтобы Box располагался у нижнего края приложения и имел фиксированную высоту, тогда как Canvas заполняет оставшуюся область сцены и не перекрывается с Box.

Мой MXML выглядит следующим образом;

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0">
    <mx:Canvas width="100%" height="100%" />

    <mx:Box width="100%" height="30"></Box>
</mx:Module>

Я пытался использовать динамическую привязку, чтобы установить высоту на холсте (height = "{this.stage.height - 30}"), но это дает неправильные результаты.

Есть ли простой способ достичь того, что я хочу, без установки высоты с помощью Actionscript?

Ответы [ 3 ]

2 голосов
/ 26 июня 2009
<Module layout="vertical" xmlns="...">
  <Canvas width="100%" height="100%">
  <HBox width="100%" height="30"/>
</Module>

При установке layout="vertical" Module будет работать более или менее подобно VBox. Canvas заполнен на 100% по вертикали и горизонтали, но для HBox будет оставлено место, поскольку он имеет явную высоту.

1 голос
/ 26 июня 2009

Я не очень много использовал Модули, но это работает:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    width="100%"
    height="100%"
    >
        <mx:Canvas left="0" right="0" top="0" bottom="0" />
    <mx:HBox 
        width="100%"
        height="50"
        bottom="0"
        >
             ....
    </mx:HBox>
</mx:Application>

Надеюсь, это поможет!

0 голосов
/ 29 июня 2009

Я смог использовать;

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0">
    <mx:Canvas bottom="30" left="0" right="0" top="0" />

    <mx:Box width="100%" height="30"></Box>
</mx:Module>

Это решило мою проблему, так как Canvas заполнил бы пространство, доступное до Box. Если установить для свойства bottom значение 0 на холсте, оно будет расширяться за пределы поля и заполнять весь этап.

...