使用1个滚动条来滚动2个列表Flex 4

问题描述:

一直试图滚动2个列表,其滚动条的滚动条被禁用,滚动条的右边添加了1个滚动条。使用1个滚动条来滚动2个列表Flex 4

我试着设置每个列表的滚动条的视口,而工作只是实例化滚动到每个列表,而不是使用1

基本上我试图让他们在垂直滚动同时拖动只有1个滚动条的拇指。

我认为这是一个有趣的问题,并做了一点调查。这是我想出来的。

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      xmlns:mx="library://ns.adobe.com/flex/mx" 
      initialize="application1_initializeHandler(event)" 
      creationComplete="application1_creationCompleteHandler(event)"> 
<fx:Script> 
    <![CDATA[ 
     import flashx.textLayout.container.ScrollPolicy; 

     import mx.collections.ArrayCollection; 
     import mx.events.FlexEvent; 
     [Bindable] private var dp:ArrayCollection = new ArrayCollection(); 
     protected function application1_initializeHandler(event:FlexEvent):void 
     { 
      //Add some dummy content 
      for (var i:int=0; i<20; i++){ 
       dp.addItem("Test Item " + i); 
      } 
      //Turn off vertical scrolling for the two lists 
      list1.scroller.setStyle("verticalScrollPolicy", ScrollPolicy.OFF); 
      list2.scroller.setStyle("verticalScrollPolicy", ScrollPolicy.OFF); 
     } 


     protected function vScroll_changeHandler(event:Event):void 
     { 
      //Set the maximum of the one scroll bar to equal the maximum value of the hidden scroll bar 
      vScroll.maximum = list1.scroller.verticalScrollBar.maximum; 
      //Set the scroll position of the two hidden scroll bars to the value of the visible bar 
      list1.scroller.verticalScrollBar.value = vScroll.value; 
      list2.scroller.verticalScrollBar.value = vScroll.value; 
     } 


     protected function application1_creationCompleteHandler(event:FlexEvent):void 
     { 
      //Initialize the maximum value to the value of the hidden scroll bar after data has been loaded 
      vScroll.maximum = list1.scroller.verticalScrollBar.maximum; 
     } 

    ]]> 
</fx:Script> 

<s:HGroup> 
    <s:List id="list1" dataProvider="{dp}" height="200"/> 

    <s:List id="list2" dataProvider="{dp}" height="200"/> 
    <s:VScrollBar id="vScroll" height="200" change="vScroll_changeHandler(event)"/> 
</s:HGroup> 

</s:Application>