2
我有一個Spark列表,它具有用於呈現列表中的每個項目的自定義itemRenderer
。 我希望阻止用戶選擇該列表中的項目(基於某些自定義邏輯)。防止選擇火花列表中的特定項目
我能達到這個目標的最佳方法是什麼?
這裏是我的名單是如何定義的:
,當然還有,我定義爲類com.sample.MyItemRenderer
一個項目渲染器。
我有一個Spark列表,它具有用於呈現列表中的每個項目的自定義itemRenderer
。 我希望阻止用戶選擇該列表中的項目(基於某些自定義邏輯)。防止選擇火花列表中的特定項目
我能達到這個目標的最佳方法是什麼?
這裏是我的名單是如何定義的:
,當然還有,我定義爲類com.sample.MyItemRenderer
一個項目渲染器。
就我所知,項目的選擇由列表單獨處理,所以我會說你可以從那裏管理它。我會在名爲「可選擇」或類似的列表中的對象上有一個字段,當列表項正在改變時,檢查新項是否實際可選,如果不是,那麼您可以擁有它清除選擇或重置爲先前的選擇。
protected function myList_changingHandler(event:IndexChangeEvent):void {
var newItem:MyObject = myList.dataProvider.getItemAt(event.newIndex) as MyObject;
if(!newItem.selectable) {
event.preventDefault();
}
}
// Jumping ahead ...
<s:List id="myList" changing="myList_changingHandler(event)" // ... continue implementation
中的MyObject類的相關部分如下::您可以通過在了IndexChangeEvent反應的「改變」事件列表組件上,並呼籲「的preventDefault」如下實現這個
public class MyObject {
private var _selectable:Boolean;
public function MyObject(){
}
public function set selectable(value:Boolean):void {
_selectable = value;
}
public function get selectable():Boolean {
return _selectable;
}
}