0

ポリシーが自動に設定されていても、mx:listには常にスクロールバーが表示されます。どうすればそれを本当に自動にして、不要なときに消えさせることができますか?コードは次のとおりです。

<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>
4

1 に答える 1

0

を設定しているため、問題が発生しているようですmaxHorizontalScrollPosition。そうしないと、リストは期待どおりに動作します(実際に必要でない限り、スクロールバーはありません)。

リストのcolumnWidthプロパティも使用していますが、ドキュメントには、古いコンポーネント<mx:TileList /><mx:HorizontalList />コンポーネントのみが使用されていると記載されています。これを。と一緒に使用しても意味がありません<mx:List />デフォルト値はcolumnWidth50であり、これがスクロールバーが表示される理由です。

columnWidthリストのを500と設定すると、スクロールバーが消えます。maxHorizontalScrollPositionしかし、繰り返しになりますが、またはをまったく使用しないことをお勧めcolumnWidthします。

率直に言って、設定の目的が何であるかはわかりませんmaxHorizontalScrollPosition。スクロールバーがある場合、ユーザーが最後までスクロールできるようにしませんか?私はこれまでこのプロパティを使用したことがありません。考えれば考えるほど、Flex SDK開発者がそのようなプロパティを作成したことは少し不必要に思えます。繰り返しになりますが、スクロールバーがあるのに、ユーザーがスクロールできないのはなぜですか。終わり?なんらかの理由があると思います:)

最後に、<s:List />よりも使用したほうがよい場合があり<mx:List />ます。すでににあるSparkコンポーネント<s:VGroup />を使用しているため、リストにMXを使用する理由はありません。Sparkリストを使用すると、コードがわずかに変更されます(これらのプロパティの一部は関連性がなくなります)が、目的と同じ結果を達成できるはずです。

于 2013-01-04T02:34:44.877 に答える