代码之家  ›  专栏  ›  技术社区  ›  hering Robyn Liu

Adobe Flex布局问题。vgroup内的嵌套容器,100%高度不工作

  •  1
  • hering Robyn Liu  · 技术社区  · 16 年前

    我有一个动态的嵌套布局(大小是百分比值),或者至少应该是动态的。

    我从代码中删除了字符串的文本:

    <s:VGroup width="98%" height="70%" 
       horizontalAlign="center"
        horizontalCenter="0">
     <s:BorderContainer
      borderStyle="inset" borderWeight="1"
      cornerRadius="20"
      textAlign="center"
      width="100%" height="100%">
      <s:layout>
       <s:HorizontalLayout gap="0"
            verticalAlign="middle"/>
      </s:layout>
      <s:Label width="60%" height="100%"
         verticalAlign="middle"
         textAlign="right"/>
      <s:HGroup horizontalAlign="center" 
          width="40%" height="100%"
          gap="0">
       <s:Label height="100%" width="100%"
          verticalAlign="middle"
          textAlign="center"/>
       <s:Label height="100%" width="100%"
          verticalAlign="middle" />
      </s:HGroup>
     </s:BorderContainer>
     <s:BorderContainer
      borderStyle="inset" borderWeight="1"
      cornerRadius="20"
      textAlign="center"
      width="100%" height="100%">
      <s:layout>
       <s:HorizontalLayout gap="0"
            verticalAlign="middle"/>
      </s:layout>
      <s:Label width="60%" height="100%"
         verticalAlign="middle"
         textAlign="right"/>
      <s:HGroup horizontalAlign="center" 
          width="40%" height="100%"
          gap="0">
       <s:Label height="100%" width="100%"
          verticalAlign="middle"
          textAlign="center"/>
       <s:Label height="100%" width="100%"
          verticalAlign="middle" />
      </s:HGroup>
     </s:BorderContainer>
     <s:BorderContainer
      borderStyle="inset" borderWeight="1"
      cornerRadius="20"
      textAlign="center"
      width="100%" height="100%">
      <s:layout>
       <s:HorizontalLayout gap="0"
            verticalAlign="middle"/>
      </s:layout>
      <s:Label width="60%" height="100%"
         verticalAlign="middle"
         textAlign="right"/>
      <s:HGroup horizontalAlign="center" 
          width="40%" height="100%"
          gap="0">
       <s:Label height="100%" width="100%"
          verticalAlign="middle"
          textAlign="center"/>
       <s:Label height="100%" width="100%"
          verticalAlign="middle" />
      </s:HGroup>
     </s:BorderContainer>
     <s:BorderContainer
      borderStyle="inset" borderWeight="1"
      cornerRadius="20"
      textAlign="center"
      width="100%" height="100%">
      <s:layout>
       <s:HorizontalLayout gap="0" />
      </s:layout>
      <s:Label width="60%" height="100%"
         verticalAlign="middle"
         textAlign="right"/>
      <s:HGroup horizontalAlign="center" verticalAlign="middle"
          width="40%" height="100%" 
          gap="0">
       <s:Group width="100%" height="100%">
        <s:Rect width="80%" height="80%"
          horizontalCenter="0" verticalCenter="0"
          bottomLeftRadiusX="15" topRightRadiusX="15">
         <s:fill>
          <s:SolidColor color="0xFFFFFF" />
         </s:fill>
        </s:Rect>
        <s:Label height="100%" width="100%"
           verticalAlign="middle"
           textAlign="center"/>
       </s:Group>
       <s:Label height="100%" width="100%"
          verticalAlign="middle" />
      </s:HGroup>
     </s:BorderContainer>
    </s:VGroup>
    

    如图所示,四个“行”太高,无法放入组件(与黑色背景一样大)。

    我不知道怎么解决这个问题,你有什么提示吗?

    这是一个示意性的例子,它看起来是这样的: alt text http://www.freeimagehosting.net/uploads/a8159c57d2.png

    1 回复  |  直到 16 年前
        1
  •  1
  •   Wade Mueller    16 年前

    我的猜测是,您试图使边界容器符合vgroup的约束。实现这一功能的一个技巧是在四个边界容器中的每个容器上设置minheight=“0”,以强制重新测量。如果我在这里有点偏离目标,请提供更多的信息,说明您具体需要什么结果。希望有帮助。

    推荐文章