apache-flex 如何修复画布中重叠的VBox子对象?

8cdiaqws  于 2022-10-31  发布在  Apache
关注(0)|答案(3)|浏览(192)

我在画布中的VBox中有多个HBox,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
<mx:Canvas  width="600" height="500">
        <mx:VBox height="100%" left="10" right="10">
        <mx:HBox width="100%" >
        <mx:VBox width="48%" height="100%" horizontalAlign="left">
        <mx:Label text="Label" />

        </mx:VBox>

        <mx:VBox width="48%" height="100%" horizontalAlign="left">
        <mx:Label text="Label" />
        <mx:HBox width="100%">
            <mx:VBox width="48%">   
                <mx:Label text="Label" />
                <mx:ComboBox />
            </mx:VBox>

        </mx:HBox>
        </mx:VBox>

        </mx:HBox>
        <mx:VBox>
            <mx:HBox>
                <mx:Label text="Label" />
                <mx:Label text="Label" />
            </mx:HBox>
        </mx:VBox>
        <mx:HBox>
            <mx:Label text="Label" />
            <mx:ComboBox/>
        </mx:HBox>
        <mx:HBox>
        <mx:VBox horizontalScrollPolicy="off" verticalScrollPolicy="off"
        includeInLayout="false" >
        <mx:Label text="Label"  />

        </mx:VBox>
        <mx:VBox>
        <mx:HBox horizontalScrollPolicy="off" verticalScrollPolicy="off"
            includeInLayout="false"
            >
            <mx:VBox >
                    <mx:Label text="Text" />
                    <mx:ComboBox />
            </mx:VBox>
            <mx:VBox>
                    <mx:Label text="Label" />
                    <mx:ComboBox />
            </mx:VBox>
        </mx:HBox>
        <mx:HBox horizontalScrollPolicy="off" verticalScrollPolicy="off"
            includeInLayout="false"
            >
            <mx:VBox>
                <mx:Label text="Label:"/>
                <mx:ComboBox />
            </mx:VBox>
            <mx:VBox>
                <mx:Label text="Label: "/>
                <mx:ComboBox   />
            </mx:VBox>
        </mx:HBox>
        </mx:VBox>
        </mx:HBox>
        <mx:HBox >
            <mx:Label text="Label:" />
            <mx:CheckBox />
        </mx:HBox>
        </mx:VBox>
    </mx:Canvas>
</mx:Application>

VBox中的最后一个子组件与其他组件重叠。如何防止画布中VBox的子组件重叠?如何调试这种情况?
我已尝试以下方法:

  • 删除基于百分比的大小调整
  • 包含在布局中= true

场景-标签和复选框重叠:

1zmg4dgp

1zmg4dgp1#

根据提供的信息很难说,但首先浮现在脑海中的两个问题是:
1.您的VBox高度是否大于其子项的高度之和?
1.是否已在VBox上设置verticalGap属性?verticalGap确定子对象之间的垂直间距。

8iwquhpp

8iwquhpp2#

我刚刚试过这个(空气应用程序),它看起来不错。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Canvas height="100%" width="100%"
      borderStyle="solid" 
      backgroundColor="0x0000ff">

      <mx:VBox height="100%" width="100%">

        <mx:VBox backgroundColor="0xff0000" height="50%" width="100%">
            <mx:HBox backgroundColor="0x000000" height="50%" width="50%"/>
            <mx:HBox backgroundColor="0xffffff" height="50%" width="50%"/>
            <mx:HBox backgroundColor="0x00ffff" height="50%" width="50%"/>
        </mx:VBox>

    <mx:HBox height="50%" width="100%" 
        backgroundColor="0xff0000" backgroundAlpha="0.5" 
        borderColor="0x000000" borderStyle="solid" borderThickness="1"/>

    </mx:VBox>          

    </mx:Canvas>

</mx:WindowedApplication>
7kqas0il

7kqas0il3#

我通过使其中一些组件的includeInLayout属性与其visible属性使用相同的条件来解决这个问题。
不确定是什么导致了这个问题。

相关问题