0

当我执行以下应用程序时,我的范围Scroller会一直延伸到内部组的高度。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fx="http://ns.adobe.com/mxml/2009"> 
    <s:Scroller width="100%" height="100%" verticalScrollPolicy="on">
        <s:Group height="1400"/>
    </s:Scroller>
</s:Application>

这是我得到的:

在此处输入图像描述

我希望它与我的窗口大小相同。你能解释一下,我做错了什么吗?为什么不用Scroller作视口?

4

1 回答 1

1

通常,您希望将滚动条的高度/宽度设为显式值,并将子项的高度/宽度设为百分比。你已经反过来了。所以,像这样:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fx="http://ns.adobe.com/mxml/2009"> 
    <s:Scroller width="100%" height="1400" verticalScrollPolicy="on">
        <s:Group height="100%"/>
    </s:Scroller>
</s:Application>

但是,这并不能解决使滚动条/组成为可用窗口宽度的问题。我会通过调整 updateDisplayList() 方法中的元素大小来做到这一点。

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fx="http://ns.adobe.com/mxml/2009"> 
<fx:Script>
  protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number:void{
    super.updateDisplayList(unscaledWidth, unscaledHeight);
    myScroller.width = unscaledWidth;
    myScroller.height - unscaledHeight;
    mySCrollingGroup.width = unscaledWidth 
    mySCrollingGroup.height - unscaledHeight;
  }
</fx:Script>

        <s:Scroller verticalScrollPolicy="on" id="myScoller">
            <s:Group id="mySCrollingGroup" />
        </s:Scroller>
    </s:Application>

您可能需要调整 myScrollingGroup 的大小以适应滚动条的高度/宽度。或者,您可以使用 myScrollingGroup 上的 precentHeight/percentWidth 属性并将它们设置为 100%。

于 2012-12-02T18:53:12.137 回答