Flex滚动条让我非常难过。我想确切地控制它们出现的哪些方框,但经过几个小时的随机尝试后,我的最佳解决方案(见下文)似乎有点笨拙且不可靠。如果我强制滚动条出现,(* ScrollPolicy =“on”)滚动条显示为禁用,因为它横跨整个框的大小,即使它超出了可视区域的界限。
我在页面顶部有一个框,它从屏幕的一侧开始运行,这很好 - 让它从侧面跑开,不要给它滚动条。但我有另外一个侧面运行的盒子,这也是可以接受的,但是我希望滚动条为和区域和提供区域和我希望那些滚动条出现在可视区域中。也就是说,我不想移动水平滚动条,这样它就可以让我看到垂直滚动条。
现在我能做的最好的事情如下:我发现你在我的图表中看到的主框的父级(实际上是伟大的曾祖父母)永远不会比可视区域更大,这是一个{ {1}}。然后我强制包含我的东西的框的父级的大小下降到父mx:Canvas
的大小,然后导致滚动条出现在我想要的地方。所以,它就像是:
mx:Canvas
很多其他父母的标签
<mx:Canvas id="main_canvas" width="100%" height="100%">
其余标签
上面的标签是一个抽象,顺便说一下。由于我尝试将滚动条放在我想要的地方进行了大量的实验,因此 <mx:Box width="100%" height="100%" maxHeight="{main_canvas.height}" maxWidth="{main_canvas.width}"> <!--box containing the box that should show scroll bars-->
<mx:Box width="100%" height="100%"> <!--box that should show scroll bars-->
es,mx:*Box
es甚至是mx:Canvas
的层次结构非常高。
它似乎有效,但它可能不必要地复杂化,我觉得客户会找到一种让它失败的方法。
我正在使用3.5 SDK。
答案 0 :(得分:0)
最后,我能做的最好的事情是在mx:Canvas
中包装我想要的滚动条,然后将其maxWidth
设置为父组件width
仅限于我想要的宽度,最后在mx:Box
内加mx:Canvas
。至少,在大多数情况下,当控件垂直堆叠时,这似乎有效,我希望水平滚动条跨越mx:Canvas
的整个宽度。通常这已经足够了,并且不知何故垂直滚动条问题已经解决了,但是在几个场合,我不得不求助Flex: getting the height of a collection of controls计算一些子聚合控件的maxHeight
,我发现有点kludgy。