2009-11-10 90 views
3

我想限制flex组件的高度到浏览器视口的高度。如何将Flex组件的高度绑定到浏览器窗口的高度?

组件的子项使用中继器从数据库表填充,并且是基本复选框。有足够的Flex应用程序最终大约是屏幕高度的两倍,这意味着其他一些布局对我来说很糟糕。我如何强制包含这些的组件将自身限制为视口的大小?

回答

1

如果我理解您的问题,您希望获得浏览器窗口的客户区大小,这与您的Flex应用程序的大小相同。

所以,只要使用Application.application.width和Application.application.height

你应该听的是改变了应用程序的大小,使像

if (component.width > Application.application.width) 
    component.width = Application.application.width 

的事件可能会比较事件成为stage.addEventListener(Event.RESIZE, onStageResize)

2

将组件高度设置为100%应该是您所需要的。

在MXML

<mx:Vbox height="100% />

在动作:

myVBox.percentHeight = 100;

如果组件的内容占用比更多的可用空间,屏幕上的组件应该提供自己的滚动条保持组件高度相同。如果情况并非如此,那么如果您发布代码,这将有所帮助。

0

您可以设置组件视 的高度,说:

的ActionScript:

component.height = viewport.height; 

MXML:

<mx:component height={viewport.height} /> 
2

设置了minHeight和minWidth为您的容器0:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%"> 
    <mx:HBox width="100%" height="100%"> 
     <mx:HBox width="20%" height="100%"> 
      <mx:Label text="Left Panel"/> 
     </mx:HBox> 
     <mx:VBox width="100%" height="100%" minWidth="0" minHeight="0"> 
      <mx:CheckBox label="1" /> 
      <mx:CheckBox label="2" /> 
      <mx:CheckBox label="3" /> 
      <mx:CheckBox label="4" /> 
      <mx:CheckBox label="5" /> 
      <mx:CheckBox label="6" /> 
      <mx:CheckBox label="7" /> 
      <mx:CheckBox label="8" /> 
      <mx:CheckBox label="9" /> 
      <mx:CheckBox label="10" /> 
      <mx:CheckBox label="11" /> 
      <mx:CheckBox label="12" /> 
      <mx:CheckBox label="13" /> 
      <mx:CheckBox label="14" /> 
      <mx:CheckBox label="15" /> 
      <mx:CheckBox label="16" /> 
      <mx:CheckBox label="17" /> 
      <mx:CheckBox label="18" /> 
      <mx:CheckBox label="19" /> 
      <mx:CheckBox label="20" /> 
     </mx:VBox> 
     <mx:HBox width="20%" height="100%"> 
      <mx:Label text="Right Panel"/> 
     </mx:HBox> 
    </mx:HBox> 
</mx:Application> 
相关问题