首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex -将滚动条的位置更改为HorizontalList组件顶部

Flex -将滚动条的位置更改为HorizontalList组件顶部
EN

Stack Overflow用户
提问于 2009-03-05 14:46:31
回答 2查看 9.7K关注 0票数 3

默认情况下,HorizontalList组件的水平ScrollBar将位于底部。有没有办法将它重新定位,使其位于顶部?

为了清楚起见,我并不是指使用scrollToIndex或horizontalScrollPosition或类似的方法来移动滚动条位置,而是指移动滚动条组件的实际物理位置。

如有任何建议,我们将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-05 16:19:57

不久前,我自己也在寻找类似的东西,找到了this post。我最终以另一种方式解决了我的问题,所以我没有使用这种解决方案,尽管它可能会对你想要的东西起作用。

票数 3
EN

Stack Overflow用户

发布于 2009-03-24 08:10:13

我以前也做过同样的事情。我不得不深入研究基类(以处理一些掩码/定位问题),这就是我想出来的:

代码语言:javascript
复制
package
{
    import flash.display.DisplayObject;

    import mx.controls.HorizontalList;
    import mx.core.EdgeMetrics;

    public class ReverseHList extends HorizontalList
    {
        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);

            var w:Number = unscaledWidth;
            var h:Number = unscaledHeight;
            var vm:EdgeMetrics = viewMetrics;
            if (horizontalScrollBar && horizontalScrollBar.visible)
            {
                horizontalScrollBar.setActualSize(w - vm.left - vm.right,
                                                  horizontalScrollBar.minHeight);
                horizontalScrollBar.move(vm.left, vm.top);

                horizontalScrollBar.enabled = enabled;
            }

            var mask:DisplayObject = maskShape;

            var wd:Number = w - vm.left - vm.right;
            var ht:Number = h - vm.top - vm.bottom;

            mask.width = wd < 0 ? 0 : wd;
            mask.height = ht < 0 ? 0 : ht;

            mask.x = vm.left;
            mask.y = vm.top + vm.bottom;
        }

        override protected function adjustListContent(unscaledWidth:Number = -1,
                                       unscaledHeight:Number = -1):void
        {
            super.adjustListContent(unscaledWidth, unscaledHeight);

            var lcx:Number = viewMetrics.left + listContent.leftOffset;
            var lcy:Number = (viewMetrics.top + listContent.topOffset) + viewMetrics.bottom;
            listContent.move(lcx, lcy);
        }

    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/615074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档