<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    TWaver - 專注UI技術

    http://twaver.servasoft.com/
    posts - 171, comments - 191, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    如何讓Flex的Tree顯示水平滾動條

    Posted on 2012-01-31 17:29 TWaver 閱讀(2626) 評論(1)  編輯  收藏
    論壇一直有人問為何設置了twaver.controls.Tree的horizontalScrollPolicy為 ScrollPolicy.AUTO,可是還是沒有橫向滾動條。這是由于Adobe出于性能的考慮,沒有計算maxHorizontalScrollPosition的值。本文貼出了解決方案,效果如下:

    從原始Tree繼承出新的類AutoSizeTree:
     1 package {
     2     import flash.events.Event;
     3 
     4     import mx.core.ScrollPolicy;
     5     import mx.core.mx_internal;
     6 
     7     import twaver.DataBox;
     8     import twaver.controls.Tree;
     9 
    10     public class AutoSizeTree extends Tree {
    11         public function AutoSizeTree(dataBox:DataBox=null) {
    12             super(dataBox);
    13             horizontalScrollPolicy = ScrollPolicy.AUTO;
    14         }
    15 
    16         override public function get maxHorizontalScrollPosition():Number {
    17             if (isNaN(mx_internal::_maxHorizontalScrollPosition))
    18                 return 0;
    19 
    20             return mx_internal::_maxHorizontalScrollPosition;
    21         }
    22 
    23         override public function set maxHorizontalScrollPosition(value:Number):void {
    24             mx_internal::_maxHorizontalScrollPosition = value;
    25             dispatchEvent(new Event("maxHorizontalScrollPositionChanged"));
    26 
    27             scrollAreaChanged = true;
    28             invalidateDisplayList();
    29         }
    30 
    31         override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
    32             var diffWidth:Number = measureWidthOfItems(0,0- (unscaledWidth - viewMetrics.left - viewMetrics.right);
    33 
    34             if (diffWidth <= 0)
    35                 maxHorizontalScrollPosition = NaN;
    36             else
    37                 maxHorizontalScrollPosition = diffWidth;
    38 
    39             super.updateDisplayList(unscaledWidth, unscaledHeight);
    40         }
    41     }
    42 }

    測試代碼如下:


     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
     3                 xmlns:tw="http://www.servasoftware.com/2009/twaver/flex"
     4                 applicationComplete="init()" xmlns:local="*">
     5     <mx:Script>
     6         <![CDATA[
     7             import twaver.*;
     8 
     9             private function init():void {
    10                 var box:ElementBox = new ElementBox();
    11 
    12                 var group:Group = new Group();
    13                 group.name = "Group";
    14                 box.add(group);
    15 
    16                 for(var i:int=0; i<20; i++){
    17                     var node:Node = new Node();
    18                     node.name = "Node with long long long long long long name " + Utils.randomInt(10000000);
    19                     group.addChild(node);
    20                     box.add(node);
    21                 }
    22 
    23                 tree.dataBox = box;
    24                 tree.callLater2(function():void {
    25                     tree.expandAll();
    26                 });
    27             }
    28         ]]>
    29     </mx:Script>
    30     <local:AutoSizeTree id="tree" width="300" height="100%"/>
    31 </mx:Application>

    如果您數據量少,性能不是大問題,不妨試一試,完整工程代碼見附件:TestAutoSizeTree


    評論

    # re: 如何讓Flex的Tree顯示水平滾動條  回復  更多評論   

    2012-02-05 20:34 by 長沙網絡公關
    override public function set maxHorizontalScrollPosition(value:Number):void {
    24 mx_internal::_maxHorizontalScrollPosition = value;
    25 dispatchEvent(new Event("maxHorizontalScrollPositionChanged"));
    26
    27 scrollAreaChanged = true;
    28 invalidateDisplayList();

    貌似有點小問題

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV人人澡人人爽人人夜夜| 亚洲av纯肉无码精品动漫| 亚洲依依成人精品| 成年大片免费视频播放一级| 日韩在线播放全免费| 精品国产亚洲男女在线线电影| 亚洲 欧洲 日韩 综合在线| 久久最新免费视频| 国产精品极品美女免费观看| 在线电影你懂的亚洲| 一二三区免费视频| 日韩一级在线播放免费观看| 亚洲性猛交xx乱| 日韩a级无码免费视频| 国产精品成人四虎免费视频| 日韩亚洲人成在线综合| 国产成人午夜精品免费视频| 亚洲第一成年男人的天堂| 免费A级毛片无码专区| 伊人亚洲综合青草青草久热| 亚洲AV色欲色欲WWW| 亚洲日韩在线观看免费视频| 国产亚洲精品成人久久网站 | 免费在线观看理论片| 亚洲AV成人无码天堂| 中文字幕永久免费| 亚洲国产精品免费在线观看| 国产亚洲情侣久久精品| 一区二区在线免费视频| 亚洲日韩中文无码久久| 亚洲国产成人久久精品软件| 91嫩草免费国产永久入口| 亚洲视频无码高清在线| 亚洲七七久久精品中文国产| 水蜜桃视频在线观看免费| 国产大片免费观看中文字幕| 一区二区三区AV高清免费波多| 亚洲av日韩av不卡在线观看| 日韩一区二区三区免费体验| 女人隐私秘视频黄www免费| 亚洲AV无码专区国产乱码电影|