我有一个火花List控件。它有一个dataProvider,显示来自twitter搜索的回复。
我已经为变更处理程序创建了一个函数,如下所示:
protected function list_changeHandler(event:IndexChangeEvent):void
{
ta.text = coverflow.selectedItem.title;
}
因此,每当我选择List中的每个项目时,我都会看到该消息(ta.text) 但现在,我想让它自动点击/选择第一个项目并查看第一个消息(ta.text)
而不是我第一次手动点击我怎样才能做到这一点?
答案 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事件,以便执行处理函数。