加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Flex中调整容器大小的最佳方法是遵循父容器的显式尺寸

发布时间:2020-12-15 02:13:38 所属栏目:百科 来源:网络整理
导读:我已经在Flex中遇到了这个问题将近一年,每次我都会使用快速的黑客解决方案.我想看看是否有人有更好的主意. 以下是问题的条件: |------Container ------------|| explicitHeight: 400 (or whatever)| || |-------- VBox -------| || | percentHeight: 100 |
我已经在Flex中遇到了这个问题将近一年,每次我都会使用快速的黑客解决方案.我想看看是否有人有更好的主意.

以下是问题的条件:

|------Container  ------------|
|  explicitHeight:  400 (or whatever)
|                             |
|  |-------- VBox  -------|   |
|  |  percentHeight: 100  |   | 
|  |                      |   |
|  |  |-Repeater------|   |   |
|  |  | Potentially   |   |   |
|  |  | a lot of stuff.   |   |
|--|--|---------------|---|---|

问题是,与我想要发生的情况相反,VBox将始终扩展以容纳其中的内容,而不是坚持其父级的显式高度并创建滚动条.

我的解决方案是在对父级的引用中进行硬编码(或者在显示列表中我们需要找到明确设置的值而不是百分比).

我甚至考虑在实用程序类中使用它:

public static function getFirstExplicitHeightInDisplayList(comp:UIComponent):Number{
    if (!isNaN(comp.explicitHeight)) return comp.explicitHeight;
    if (comp.parent is UIComponent) return    
         getFirstExplicitHeightInDisplayList(UIComponent(comp.parent));
    else return 0;
}

请告诉我有更好的方法.

解决方法

您必须使用VBox上的“autoLayout”参数,因为文档说:
“默认情况下,VBox容器的大小足以将图像保持为原始大小.如果禁用布局更新,并使用缩放效果放大图像,或使用移动效果重新定位图像,则图像可能会超出VBox容器的边界.
您将autoLayout属性设置为false,因此VBox容器不会在图像调整大小时调整大小.如果图像增大到一定大小以使其超出VBox容器的边界,则容器会添加滚动条并在其边界处剪切图像.

我希望这会对你有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读