Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex:防止滚动条在自动显示时覆盖内容_Apache Flex_Scrollbar - Fatal编程技术网

Apache flex Flex:防止滚动条在自动显示时覆盖内容

Apache flex Flex:防止滚动条在自动显示时覆盖内容,apache-flex,scrollbar,Apache Flex,Scrollbar,我在Flex中有一个画布,只能在垂直方向上滚动,因此我将画布的属性设置如下: verticalScrollPolicy="auto" horizontalScrollPolicy="off" 这里的问题是,垂直滚动条出现时会覆盖内容——尽管还有足够的水平空间。我原以为内容大小会自动调整 将垂直滚动策略设置为“开”时,也不会覆盖任何内容 如果我将两个滚动策略都设置为“自动”,我还会得到一个水平滚动条,用于滚动到垂直滚动条覆盖的区域 当垂直滚动条显示时,是否有一种解决方法可以重新显示画布的内容,使

我在Flex中有一个画布,只能在垂直方向上滚动,因此我将画布的属性设置如下:

verticalScrollPolicy="auto" horizontalScrollPolicy="off"
这里的问题是,垂直滚动条出现时会覆盖内容——尽管还有足够的水平空间。我原以为内容大小会自动调整

将垂直滚动策略设置为“开”时,也不会覆盖任何内容

如果我将两个滚动策略都设置为“自动”,我还会得到一个水平滚动条,用于滚动到垂直滚动条覆盖的区域


当垂直滚动条显示时,是否有一种解决方法可以重新显示画布的内容,使其不覆盖任何内容?

这是一个错误。有关解决方法,请参阅。

关于此问题的一个旁注:它实际上不是一个bug,而是已知的(和预期的?)行为:

“Flex仅在以下情况下才会在其大小计算中考虑滚动条: 显式地将滚动策略设置为
ScrollPolicy.ON
。因此,如果您使用 自动滚动策略(默认值),即 滚动条与按钮重叠。要 如果要防止此行为,可以设置 HBox容器的高度属性 或者允许HBox容器调整大小 通过设置基于百分比的宽度。 请记住,更改 HBox容器会导致其他问题 要移动的应用程序中的组件 并根据自己的需要调整大小 大小规则。”


--在Flex 3帮助中的“使用滚动条”下,我也是。我通常在Flex中使用verticalScrollBar时会遇到一些问题,所以我更喜欢使用浏览器的滚动条来滚动整个应用程序。您可以在此处找到解决方法:

我使用的代码是:

在Flex中:

ExternalInterface.call("setInitialFlashHeight", this.height);
在我的HTML(JavaScript)中:

如果要添加(或删除)一些高度:

function addFlashHeight(height) {
    var divHeight;
    var obj = document.getElementById('my_flash');

    if (obj.offsetHeight) {
        divHeight = obj.offsetHeight;
    } else if (obj.style.pixelHeight){
        divHeight = obj.style.pixelHeight;
    }

    var newHeight = divHeight + height;
    document.getElementById('my_flash').style.height = newHeight + 'px';
}

若要删除,请使用“-”而不是“+”

我必须找到解决此问题的解决方法,因为解决方法对我不起作用。

在vbox或其他基于容器的组件上,我这样解决了该问题

错:

<mx:VBox width="100%" height="100%"
      verticalScrollPolicy="auto" horizontalScrollPolicy="off">
     <mx:Repeater dataProvider="{hede}">
          <custom:RenderItem ........../>
     </mx:Repeater>
</mx:VBox>

没有滚动条

工作版本:

<mx:VBox width="100%" height="100%"
    **minHeight="1"** horizontalScrollPolicy="off">
    <mx:Repeater dataProvider="{hede}">
        <custom:RenderItem ........../>
    </mx:Repeater>
</mx:VBox>


那么它仍然是一个bug。我已经设置了高度和宽度百分比。但当显示滚动条时,它不会调整内容的大小。我理解摘录的方式是,通过将宽度设置为一个百分比值而完全不设置高度,组件本身将在显示滚动条时调整大小,而不是内容。不过,这可能仍然不适用于你的具体情况。我已经为此奋斗了很多年-感谢指针。这只在画布有明确的高度时起作用。如果它有基于百分比的高度怎么办?@bug-a-lot我刚刚为一个有百分比高度的画布实现了这个,它工作得很好。只是注意到这最终在Flex 4中得到了修复。当我在创建后更改应用程序大小时,这个对我不起作用。我将策略设置代码作为
updateComplete
事件的一部分调用,从而解决了这个问题。但是,在
updateDisplayList()
覆盖中设置它可能更合适。
<mx:VBox width="100%" height="100%"
    **minHeight="1"** horizontalScrollPolicy="off">
    <mx:Repeater dataProvider="{hede}">
        <custom:RenderItem ........../>
    </mx:Repeater>
</mx:VBox>