flex如何设置tilegroup滚动条仍然保持在底部

时间:2015-12-16 03:59:27

标签: flex

我的组件代码在这里:

<s:BorderContainer id="bcMySeriesParameters" top="100" bottom="45" width="1030"
                   borderVisible="false" horizontalCenter="0">
    <s:Scroller id="scrollerForTgpMySeriesParameters" left="5" height="100%" width="1020">
        <s:TileGroup id="tgpMySeriesParameters" left="0" top="0" width="1020"
                     horizontalAlign="center" horizontalGap="5" requestedColumnCount="5"
                     verticalAlign="top" verticalGap="5">
        </s:TileGroup>
    </s:Scroller>
</s:BorderContainer>

我还有另一个按钮,可以加载更多参数并将这些参数添加到 tgpMySeriesParameters 。我想在加载更多参数时实现, scrollerForTgpMySeriesParameters 仍然保持在底部,如enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用Scroller.viewport.verticalScrollPosition调整滚动条位置。

在您的TileGroup附加更多数据的函数中

scrollerForTgpMySeriesParameters.viewport.verticalScrollPosition = int.MAX_VALUE;

对于更高级的场景(假设您的滚动条已经中途停止,并且您希望将其保持在组中所有项目的中间点而不是保持与顶部相同数量的项目),可以检查verticalScrollPosition的值,然后添加到它:

var numAdded:int = listOfParametersToAddToTheTileGroup.length;
var currentPos:int = scrollerForTgpMySeriesParameters.viewport.verticalScrollPosition;
//add more parameters to your tgpMySeriesParameters
currentPos += numAdded * tileHeight;
scrollerForTgpMySeriesParameters.viewport.verticalScrollPosition = currentPos;