Flex获取水平列表中列表项的宽度

时间:2012-07-19 20:15:10

标签: actionscript-3 flash flex events flex4

我的Flex应用程序中列出了<s:List>,它正在水平显示列表项,如下所示:

<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 个答案:

答案 0 :(得分: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

希望能有所帮助。