flex tree 自适应显示横向滚动条

来源:互联网 发布:java properties 编辑:程序博客网 时间:2024/06/05 02:21

原文见博客:http://blog.csdn.net/siy020513/article/details/5262550

亲测,可用!

mxml:

<?xml version="1.0" encoding="utf-8"?><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>

actionscript:

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);         }    }}





0 0
原创粉丝点击