Apache flex Adobe Flex 3:以百分比指定的宽度和高度不适用于viewstack的子级

Apache flex Adobe Flex 3:以百分比指定的宽度和高度不适用于viewstack的子级,apache-flex,flex3,adobe,rendering,Apache Flex,Flex3,Adobe,Rendering,我有一个ViewStack,它是TabBar的dataProvider。有两个VBoxs作为此ViewStack的子对象。它适用于这些VBoxs的宽度和高度的绝对值,但当以百分比指定时,VBox将所有可用空间(100%)用于任何百分比值。请在下面找到代码和屏幕截图 有人能解释一下为什么会这样吗?以及如何将ViewStack的子对象与中心对齐?ViewStack没有horizontallign属性,并且它不能与horizontalCenter=“0”一起使用 代码: 图1(带绝对值): 图

我有一个
ViewStack
,它是
TabBar的
dataProvider
。有两个
VBox
s作为此
ViewStack
的子对象。它适用于这些
VBox
s的宽度和高度的绝对值,但当以百分比指定时,
VBox
将所有可用空间(100%)用于任何百分比值。请在下面找到代码和屏幕截图

有人能解释一下为什么会这样吗?以及如何将
ViewStack
的子对象与中心对齐?
ViewStack
没有
horizontallign
属性,并且它不能与
horizontalCenter=“0”
一起使用

代码:


图1(带绝对值):

图2(宽度为25%,高度为10%):

谢谢,
Anji

只需使用一个外部容器来填充空间(这是您在视图堆栈中想要的),并将内容放入其中。外部容器可以将内部内容放在中心位置。像这样:

<mx:Box label="Tab 1" width="100%" height="100%" horizontalAlign="center">
    <mx:VBox  width="25%" height="10%" borderThickness="2" borderColor="red" 
              borderStyle="solid" >
        <mx:Text text="This is tab 1" />
    </mx:VBox>
</mx:Box>

请参考链接

在这方面,请阅读

调整ViewStack容器的子级大小

这样你可能会有一个清晰的想法

如果需要,请在vbox中使用另一个容器

        ~~~ HappY Coding ~~~

它起作用了。谢谢有没有解释为什么没有外部容器它就不能工作?是的。ViewStack很可能想要接管整个页面,因为如果它不这样做,体验会很奇怪。它实际上是一个视图堆栈,因此您可能会看到它下面的视图。相反,您可以用方框填充堆栈,然后如果需要其他布局,可以在较大的面板中进行。最终,它为您提供了更大的灵活性。
        ~~~ HappY Coding ~~~