如何在保留一些控制的同时使用自动布局?

时间:2010-09-16 15:30:00

标签: flex flash layout

我有两个面板和一个嵌套在hbox中的按钮。我希望面板并排显示,并且按钮出现在距离hbox侧面等距离的两个面板下方(即在中间)。

并排放置面板很简单,但如何获得面板下方和中间的按钮。目前,该按钮显示在第二个面板的右侧。

1 个答案:

答案 0 :(得分:0)

如果你展示你的代码,它会更容易回答。

但是,我看到两种方法。

使用嵌套容器,如下所示:

<mx:HBox>
 <mx:VBox>
  <mx:panel />
  <mx:panel />
 </mxVBox>
 <mx:button />
</mx:HBox>

这样可行,但它会为您的应用程序添加多余的容器,这会长期导致性能问题。

第二种方法是扩展UIComponent并使用updateDisplayList来计算子项的大小和位置。这比较复杂,但会给你更多的控制。我没有足够的冒险精神在浏览器中编写真正的代码,但是psuedo代码可能是这样的:

override public function updateDisplayList(unscaledHeight:Number, unscaledWidth: Number){
 panel1.x = 0
 panel1.y = 0;
 panel2.x = panel1.width;
 pane2.y = 0
 button.x = panel1.height;
 button.y = 0;
}

这是我的首选方法,虽然它不像第一种方法那么简单。