我有这样的问题:我正在创建一个容器,它在运行时是内容。这是一个粗略的结构:
- 垂直框
----表格
-------的FormItem
...
-------的FormItem
---- ControlBar的
我已修复form
容器的maxHeights以使其保持在屏幕范围内。但是当我得到垂直滚动条时,水平面也会出现(看起来这个VScrollBar的位置不够)。
为了解决这个问题,我已经创建了一个水平滚动出现的监听器,所以如果它出现了,我会稍微增加容器,所以它会正常地支撑另一个滚动条:
form.addEventListener(Event.ADDED, function(event:Event):void{
if(event.target is HScrollBar){
while(form.horizontalScrollBar && form.horizontalScrollBar.visible && !(form.width > form.maxWidth)){
form.width += 10;
form.validateDisplayList();
}
}
});
我也尝试了validateNow
和其他类似的方法。我在这里有什么:
1.正在添加HScrollBar
。
我们增加了一点容器的宽度,所以它就消失了。
3.当它消失时,验证在尝试测量不存在的滚动条时抛出空指针异常。我还尝试在验证之前添加validateProperties
,但它也没有用。
任何人都可以帮助摆脱这个恼人的卷轴吗? :)
答案 0 :(得分:0)
问题是 - 如果您的scrollPolicy设置为auto
Flex在计算布局时不考虑滚动尺寸。因此,当滚动显示时,它会显示在已经存在的内容上。当内容被滚动隐藏时,会出现水平滚动,因此可以通过滚动访问所有内容。我通常处理的方法是始终将paddingRight
(或父项为right
时的Canvas
)样式属性设置为20(滚动常用宽度为16),因此当滚动出现时它不会什么都不重叠。