自动选择flex4中sparks List控件中的第一个索引

时间:2010-04-11 13:06:37

标签: flex flex4

我有一个火花List控件。它有一个dataProvider,显示来自twitter搜索的回复。

我已经为变更处理程序创建了一个函数,如下所示:

protected function list_changeHandler(event:IndexChangeEvent):void
{
    ta.text = coverflow.selectedItem.title;
}

因此,每当我选择List中的每个项目时,我都会看到该消息(ta.text) 但现在,我想让它自动点击/选择第一个项目并查看第一个消息(ta.text)

而不是我第一次手动点击

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

您应该在列表控件上将 requireSelection 属性设置为 true

<s:List id="myList" dataProvider="{myDataProvider}" requireSelection="true"/>

答案 1 :(得分:0)

实际上,在考虑这个问题时,您可能需要对列表进行子类化并覆盖dataProvider setter。

override public function set dataProvider(data:*) : void {
  super._dataProvider = data;
  // This will be an ArrayCollection or XMLListCollection, so will have a length
  if (data && data.length > 0) {
    this.selectedIndex = 0;
    invalidateDisplayList();
  }
}

答案 2 :(得分:0)

如何尝试此解决方案? :)

您的列表控件还包含事件名称creationComplete(类似于change事件)。尝试用这个选择你的第一个项目:

protected function list1_creationCompleteHandler(event:FlexEvent):void
{
    if(event.target.dataProvider != null )
    {
        (event.target as List).selectedIndex = 0;
    }
}

您可能无需将event.target转换为List。但它可以帮助您在编码时访问代码完成。

答案 3 :(得分:0)

设置列表的dataProvider,设置所选项,然后使用null参数直接调用处理函数,或者使列表调度indexChanged事件,以便执行处理函数。