Apache flex 在flex4中的sparks列表控件中自动选择第一个索引
我有一个火花列表控件。它有一个数据提供者,显示来自twitter搜索的回复 我为变更处理程序创建了如下函数:Apache flex 在flex4中的sparks列表控件中自动选择第一个索引,apache-flex,flex4,Apache Flex,Flex4,我有一个火花列表控件。它有一个数据提供者,显示来自twitter搜索的回复 我为变更处理程序创建了如下函数: protected function list_changeHandler(event:IndexChangeEvent):void { ta.text = coverflow.selectedItem.title; } 因此,每当我选择列表中的每个项目时,我都会看到消息(ta.text) 但是现在,我希望它自动单击/选择第一个项目并查看第一条消息(ta.text),而不是第一
protected function list_changeHandler(event:IndexChangeEvent):void
{
ta.text = coverflow.selectedItem.title;
}
因此,每当我选择列表中的每个项目时,我都会看到消息(ta.text)
但是现在,我希望它自动单击/选择第一个项目并查看第一条消息(ta.text),而不是第一次手动单击
如何实现这一点?实际上,考虑到这一点,您可能需要对列表进行子类化,并覆盖数据提供程序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();
}
}
实际上,考虑到这一点,您可能需要对列表进行子类化,并覆盖数据提供者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();
}
}
试试这个解决方案怎么样?:) 列表控件还具有事件名称
creationComplete
(类似于change
事件)。尝试使用以下选项选择您的第一项:
protected function list1_creationCompleteHandler(event:FlexEvent):void
{
if(event.target.dataProvider != null )
{
(event.target as List).selectedIndex = 0;
}
}
您可能不需要将
事件.目标
转换为列表
。但它可以帮助您在编码时访问代码完成 试试这个解决方案怎么样?:)
列表控件还具有事件名称creationComplete
(类似于change
事件)。尝试使用以下选项选择您的第一项:
protected function list1_creationCompleteHandler(event:FlexEvent):void
{
if(event.target.dataProvider != null )
{
(event.target as List).selectedIndex = 0;
}
}
您可能不需要将
事件.目标
转换为列表
。但它可以帮助您在编码时访问代码完成 设置列表的数据提供程序,设置所选项目,然后使用null参数直接调用处理程序函数,或者使列表分派indexChanged事件,以便执行处理程序函数。设置列表的数据提供程序,设置所选项目,然后使用null参数直接调用处理程序函数,或者使列表分派一个indexChanged事件,以便执行处理程序函数。您应该在列表控件上将属性设置为true
<s:List id="myList" dataProvider="{myDataProvider}" requireSelection="true"/>
您应该在列表控件上将属性设置为true
<s:List id="myList" dataProvider="{myDataProvider}" requireSelection="true"/>
如果creationComplete上的数据提供程序为空,则此操作将失败。谢谢,Robusto。我根据您的建议改进了我的答案。我还建议您将作业写为列表(event.target)。selectedIndex=0
这样你的intellisense就可以工作,语法检查器就不会发出警告。如果creationComplete上的数据提供程序为空,这将失败。谢谢,Robusto。我根据您的建议改进了我的答案。我还建议您将作业写为列表(event.target)。selectedIndex=0
这样你的intellisense就可以工作,语法检查器就不会发出警告。除非他想在多个地方出现相同的行为,否则不需要子类化。除非他想在多个地方出现相同的行为,否则不需要子类化。