0

<s:List>次のように、リストアイテムを水平方向に表示しているリストがFlexアプリケーションにあります。

<s:List id="horzList">
  <s:Layout>
    <s:HorizontalLayout/>
  </s:Layout>

  <s:dataProvider>
    <s:ArrayList>
      <fx:String>Short Item</fx:String>
      <fx:String>Looooonnnnggggeeerrrrr Item</fx:String>
      <fx:String>A really, really, really long item for this list</fx:String>
    </s:ArrayList>
  </s:dataProvider>
</s:List>

イベントを使用してchange、水平リスト内のこれらのアイテムの1つの幅を取得するにはどうすればよいですか?

お時間をいただきありがとうございます。

4

1 に答える 1

0

うわー...これは汚い混乱ですが、私はそれを手に入れました。これがchangeイベントハンドラーです。補足として、私の実際のアプリケーションは、外部データソースを備えたアイテムレンダラーを使用しています。そうは言っても、アイテムレンダラーを使用していない限り、以下のコードが機能するかどうかはわかりません。

private function changeHandler(e:IndexChangeEvent):void {
  var index:int = horzList.selectedIndex;
  var selected:IVisualElement = horzList.dataGroup.getElementAt(index);
  var width:Number = selected.width;

  //Do something with the width...
}

この答えは私にとって大きな助けになりました:https ://stackoverflow.com/a/4035185/663604

それが誰かを助けることを願っています。

于 2012-07-19T20:43:28.237 に答える