2013-01-04 3 views
0

내 mx : 정책이 자동으로 설정된 경우에도 목록에 항상 스크롤 막대가 표시됩니다. 내가 진정으로 자동이되고 필요하지 않을 때 사라지게하려면 어떻게해야합니까? 다음은 코드입니다 :mx : 자동으로 설정된 경우 가로 스크롤이 항상 표시됩니다.

<fx:Script> 
    <![CDATA[ 
    private function initFoo():void 
    { 
     foo.maxHorizontalScrollPosition=foo.columnWidth; 
    } 
    ]]> 
</fx:Script> 

<s:VGroup width="100%"> 
    <mx:List id="foo" width="100%" horizontalScrollPolicy="{ScrollPolicy.AUTO}" creationComplete="initFoo()" > 
    <mx:dataProvider> 
     <fx:String>text</fx:String>    
    </mx:dataProvider> 
    </mx:List> 
</s:VGroup> 

답변

0

귀하의 문제는 당신이 maxHorizontalScrollPosition을 설정하기 때문에 발생하는 것 같습니다. 그렇게하지 않으면 목록은 예상대로 동작합니다 (실제로 스크롤 바를 필요로하지 않는 한 스크롤바가 없습니다).

는 또한리스트의 columnWidth 속성을 사용하고 있지만 docs는이 이전 <mx:TileList /><mx:HorizontalList /> 구성 요소를 사용하지 않는 전용 말한다 - 더 가리킨 <mx:List />와 함께 사용하여. 기본값은 columnWidth이고 50은 스크롤 막대를 보는 이유입니다.

목록에서 columnWidth을 500으로 설정하면 스크롤 막대가 사라집니다. 그러나 다시 한 번 maxHorizontalScrollPosition 또는 columnWidth을 전혀 사용하지 않는 것이 좋습니다.

솔직히 말해서, maxHorizontalScrollPosition을 설정하는 목적이 무엇인지 확실하지 않습니다. 스크롤 막대가있는 경우 사용자가 끝까지 무엇이든 스크롤 할 수있게 하시겠습니까? 필자는 이전에이 속성을 사용 해 본 적이 없었습니다. Flex SDK 개발자도 이러한 속성을 만들었습니다. 다시 스크롤 막대를 사용했지만 사용자가 스크롤 막대를 스크롤 할 수 없도록했습니다. 종료? 나는 몇 가지 이유 : 마지막으로

이있을거야, 당신은 <s:List /> 오히려 <mx:List />보다 사용하여 더 나을 수 있습니다 - 당신이 <s:VGroup />에 이미 Spark 컴포넌트를 사용하고, 그래서 목록 MX를 사용할 이유가 없습니다 . 스파크 목록을 사용하면 코드가 약간 변경됩니다 (일부 속성은 더 이상 적합하지 않습니다).하지만 나중에 동일한 결과를 얻을 수 있어야합니다.

관련 문제