代码之家  ›  专栏  ›  技术社区  ›  Osman

控制哪个vbox获取滚动条

  •  1
  • Osman  · 技术社区  · 15 年前

    我有以下应用程序,我正试图将滚动条放在TabNavigator中的某个地方,最好放在最里面的vbox上,但是滚动条总是出现在面板上。有什么财产可以控制这个吗?我以为身高=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>
    
    2 回复  |  直到 10 年前
        1
  •  3
  •   Osman    13 年前

    我发现正确的解决方法是将框上的最小高度设置为0。如果未定义最小高度,则框将尝试保持在其测量的高度。通过设置MinHeight,您可以告诉框可以收缩。

        2
  •  1
  •   Alex B.    15 年前

    我以前遇到过这个问题,解决方案有点不稳定,但希望这有助于:

    <?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作为良好的度量:p)

    注意你 可以 需要从给定的高度减去一点,否则滚动条将低于组件边界;)