`
其实不坏
  • 浏览: 52246 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

如何让Flex的Tree显示水平滚动条

    博客分类:
  • Flex
阅读更多
from http://twaver.servasoft.com/?p=3631 thanks
论坛一直有人问为何设置了twaver.controls.Tree的horizontalScrollPolicy为 ScrollPolicy.AUTO,可是还是没有横向滚动条。这是由于Adobe出于性能的考虑,没有计算maxHorizontalScrollPosition的值。本文贴出了解决方案,效果如下:

从原始Tree继承出新的类AutoSizeTree:

package com.render
{
    import flash.events.Event;
   
    import mx.controls.Alert;
    import mx.controls.Tree;
    import mx.core.ScrollPolicy;
    import mx.core.mx_internal;

    public class AutoSizeTree extends Tree
    {
        public function AutoSizeTree()
        {
            super();
            horizontalScrollPolicy = ScrollPolicy.AUTO;
        }
    
        override public function get maxHorizontalScrollPosition():Number
        {
             if (isNaN(mx_internal::_maxHorizontalScrollPosition))        
                return 0;                         
            return mx_internal::_maxHorizontalScrollPosition;     
        }          
                      
        override public function set maxHorizontalScrollPosition(value:Number):void
        {
            mx_internal::_maxHorizontalScrollPosition = value;            
            dispatchEvent(new Event("maxHorizontalScrollPositionChanged"));    
            scrollAreaChanged = true;           
            invalidateDisplayList();      
        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {   
                var diffWidth:Number = measureWidthOfItems(0,0) - (unscaledWidth - viewMetrics.left - viewMetrics.right);
               
                var indentation:Number = getStyle("indentation");
           
                if (diffWidth <= 0)                  
                    maxHorizontalScrollPosition = NaN;
                else
                    maxHorizontalScrollPosition = diffWidth + indentation;                                   
                super.updateDisplayList(unscaledWidth, unscaledHeight);
        }
    }
}



如果您数据量少,性能不是大问题,不妨试一试


<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:cmp="com.render.*"
    height="100%" width="100%" paddingTop="0" paddingBottom="0" paddingLeft="0" paddingRight="0">
    <cmp:AutoSizeTree
            id="checkTree"
            itemRenderer="com.render.CheckTreeRenderer"
            change="updataDataGrid()"
            labelField="@label"
             width="100%" height="100%" 
             horizontalScrollPolicy="auto" >
     </cmp:AutoSizeTree>
</mx:Application>
分享到:
评论

相关推荐

    flex tree 自动显示横向滚动条

    flex tree 自动显示横向滚动条 自定义重写

    flex tree自动显示横向滚动条实现代码

    flex tree自动显示横向滚动条想必有很多的朋友都不会吧,下面与大家分享下具体的实现方法,感兴趣的你可不要错过了哈

    flex3 Tree右键菜单

    当Tree的内容超出其可视区域时,会自动出现水平或垂直滚动条。你可以通过设置`horizontalScrollPolicy`和`verticalScrollPolicy`属性来控制滚动条的行为,如`ScrollPolicy.ON`表示始终显示,`ScrollPolicy.OFF`表示...

    flex的tree动态加载大量数据与滚动条相关问题探讨

    本文将对flex的tree动态加载大量数据与滚动条相关的问题进行探讨,感兴趣的朋友可以参考下哈,希望对你有所帮助

    flex中渲染器简介

    Flex 渲染器是Flex框架中的一个重要特性,主要用于在列表控件如List、DataGrid、Tree等中定制数据显示。在Flex中,渲染器允许开发者自定义列表中每一项的外观和行为,以此来提高用户体验和视觉吸引力。本系列将深入...

    flex基本控件总结

    2. Text(文本):Text控件也显示不可编辑的文本,但不支持滚动条。与Label类似,Text支持HTML格式,且默认大小适应文本内容,背景透明,无边框。 3. TextInput(文本条):用于用户输入文本,支持change和enter...

    flex3的cookbook书籍完整版dpf(包含目录)

    flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...

    react-tree:React的分层对象树组件

    React树 React的分层对象树组件: 支撑暗(默认值),光的主题,和...空指示器:如果未提供数据,则向用户显示一条消息 加载指示器:提供isLoading道具以指示组件尚未准备就绪 添加到项目 yarn add @naisutech/rea

    Article-view

    9. **自定义滚动条**:在长篇文章中,自定义滚动条样式可以使界面更统一。通过`::-webkit-scrollbar`和`::-webkit-scrollbar-thumb`等伪元素,我们可以调整滚动条的宽度、颜色等。 10. **性能优化**:使用CSS预...

    chatApp

    10. **盒模型调整**:通过设置`box-sizing`属性,可以控制元素的尺寸计算方式,这对于聊天窗口的滚动条、气泡样式等元素的边界和内填充的处理至关重要。 以上就是ChatApp项目中CSS技术的一些核心应用,通过巧妙地...

    asp.net知识库

    如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup ...

Global site tag (gtag.js) - Google Analytics