我正在使用 Adobe Flex 和 AIR 开发一个应用程序,我一直在努力寻找解决滚动问题的方法。
我的主应用程序窗口的基本结构(大大简化)是这样的:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
paddingTop="0" paddingRight="0" paddingBottom="0" paddingLeft="0"
width="800" height="600" layout="vertical" verticalAlign="top"
>
<mx:VBox id="MainContainer" width="100%" height="100%">
<mx:Panel id="Toolbars" width="100%" height="25" />
<mx:HDividedBox width="100%" height="100%" >
<mx:Panel id="Navigation" minWidth="200" height="100%" />
<mx:VBox id="MainContent" width="100%">
<mx:Panel width="100%" height="200" />
<mx:Panel width="100%" height="200" />
<mx:Panel width="100%" height="200" />
<mx:Panel width="100%" height="200" />
<mx:Panel width="100%" height="200" />
</mx:VBox>
<mx:Panel id="HelpContent" minWidth="200" height="100%" />
</mx:HDividedBox>
<mx:Panel id="FooterContent" width="100%" height="25" />
</mx:VBox>
</mx:WindowedApplication>
问题是“MainContent”框可能包含一个巨大的子组件列表,并且该长列表的存在导致垂直滚动条出现在 GUI 的最高级别,围绕“MainContainer” vbox。
它看起来很傻,在整个应用程序窗口周围都有滚动条。
我正在寻找的解决方案是滚动条仅应用于“MainContent”vbox(以及导航和帮助内容面板,如果它们的内容超出窗口边界)。
我在 StackOverflow 上找到了一个相关问题,该问题的解决方案是在父容器上使用“autoLayout”和“verticalScrollPolicy”属性。
因此,我尝试将 autoLayout="false" 和 verticalScrollPolicy="off" 属性添加到所有父容器,并将 verticalScrollPolicy="on" 属性添加到“MainContent”vbox。但是该实验的最终结果是内容只是从主容器中剪切出来的(并且在 MainContent vbox 中添加了一个没有拇指的无用滚动条)。
有谁知道如何解决这个问题?