我有以下应用程序,我试图将一个滚动条放在TabNavigator内部,最好放在最里面的Vbox上,但滚动条总是在Panel上结束。是否有某种财产可以控制这个?我认为高度= 100%会控制它,但它似乎不起作用。
示例在这里。您可以在其上查看来源: VBox Sample
无论如何,这是来源:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" viewSourceURL="srcview/index.html">
<mx:Panel width="400" height="400">
<mx:TabNavigator width="100%" height="100%" creationPolicy="all">
<mx:VBox label="Tab 1" width="100%" height="100%">
<mx:ViewStack width="100%" height="100%">
<mx:VBox width="100%" height="100%">
<mx:Text width="100%" height="500" text="This box is taller than the Panel, but the scrollbar is on the window." />
</mx:VBox>
</mx:ViewStack>
</mx:VBox>
</mx:TabNavigator>
</mx:Panel>
</mx:Application>
答案 0 :(得分:3)
我发现正确的解决方案是将方框上的最小高度设置为0.当未定义最小高度时,方框将尝试保持其测量高度。通过设置最小高度,你告诉方框可以缩小。
答案 1 :(得分:1)
过去我遇到过这个问题,解决方案有点不对劲,但希望这会有所帮助:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Panel width="400" height="400" verticalScrollPolicy="off">
<mx:TabNavigator width="100%" height="100%">
<mx:VBox id="container" label="Tab 1" width="100%" height="100%">
<mx:ViewStack width="100%" height="{container.height - 20}">
<mx:VBox width="100%" height="100%">
<mx:Text width="100%" height="500" text="This box is taller than the Panel, but the scrollbar is on the window." />
</mx:VBox>
</mx:ViewStack>
</mx:VBox>
</mx:TabNavigator>
</mx:Panel>
</mx:Application>
Flex似乎在98%的时间内正确计算动态组件尺寸,但有时我们需要“按摩”逻辑。
当您查看布局层次结构时(如上所示),您只需为了数据绑定而命名父容器(在本例中为Tab1),然后使用该容器的height属性进行大小调整。 (你也没有需要在面板上明确说明verticalScrollPolicy =“off”,但是我使用if for good measure:P)
请注意,您可能需要从给定高度中减去一点,否则您的滚动条将低于组件范围;)