在基于 Spark 的列表中,我试图取消选择列表中的项目。我通过将 selectedIndex 设置为 -1 或 List.NO_SELECTION 来做到这一点。但是,上一个项目不断被选中。为什么会这样?
问问题
658 次
1 回答
0
原因是在前面的代码中我调用了 myArrayCollection.refresh() 并且在设置 selectedIndex 之前还没有验证列表。
此列表将调用 mx_internal dataProviderRefreshed() 方法并将其置于 invalidProperties 状态。这安排列表清除选择索引和插入符号索引(在我的情况下,重新选择以前选择的索引)。
/**
* @private
* Default response to dataProvider refresh events: clear the selection and caret.
*/
mx_internal function dataProviderRefreshed():void
{
setSelectedIndex(NO_SELECTION, false);
setCurrentCaretIndex(NO_CARET);
}
解决方案是在对 dataProvider 的数组集合调用 refresh() 并在此之后设置 selectedIndex 之后调用 list.validateNow()。
于 2013-06-27T13:16:07.713 回答