<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成人片色在线观看| 456亚洲人成影院在线观| 日本在线看片免费人成视频1000| 亚洲av无码潮喷在线观看 | 免费国产污网站在线观看15| 亚洲一区影音先锋色资源| 永久黄网站色视频免费直播| 黄桃AV无码免费一区二区三区| 18gay台湾男同亚洲男同| 国产成人免费全部网站| 暖暖免费在线中文日本| 亚洲人成人无码.www石榴| 国产精品国产亚洲精品看不卡| 免费电视剧在线观看| 久久国产精品免费一区二区三区| 亚洲精品国产啊女成拍色拍| 亚洲第一黄片大全| 无码国产精品一区二区免费式直播 | 亚洲国产精品成人精品小说| 又爽又高潮的BB视频免费看| 中文字幕视频免费| 一级女人18片毛片免费视频 | 亚洲天堂免费在线视频| 亚洲国产高清在线精品一区 | 亚洲阿v天堂在线| 免费无码又爽又刺激高潮的视频 | 69成人免费视频| 岛国岛国免费V片在线观看| 亚洲日本VA中文字幕久久道具| 亚洲成A人片在线观看无码不卡| 国产三级免费观看| 一个人免费高清在线观看| 美女被cao网站免费看在线看| 国产精品亚洲va在线观看| 亚洲Av高清一区二区三区| 亚洲成A∨人片在线观看不卡| 亚洲毛片av日韩av无码| 女性自慰aⅴ片高清免费| 最近最新高清免费中文字幕 | 久久99热精品免费观看动漫| 边摸边脱吃奶边高潮视频免费 |