Apache flex 滚动AdvancedDataGrid以查看项目
以下代码正在运行: 项目渲染器:Apache flex 滚动AdvancedDataGrid以查看项目,apache-flex,actionscript,Apache Flex,Actionscript,以下代码正在运行: 项目渲染器: override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if(editMode) dispatchEvent(new Event("editLayoutChange")); } p
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
if(editMode)
dispatchEvent(new Event("editLayoutChange"));
}
private var _editModeEntered:Boolean = false;
private var _editMode:Boolean;
public function set editMode(value:Boolean):void {
_editMode = true;
_editModeEntered = true;
invalidateProperties();
}
// probably want a getter for editMode too
override protected function commitProperties():void {
super.commitProperties();
if (_enteredEditMode) {
dispatchEvent(new Event("editLayoutChange"));
_enteredEditMode = false;
}
}
Datagrid(“editLayoutChange”-“viewport”是AdvancedDataGrid的事件处理程序函数):
但我不确定覆盖updateDisplayList是否是最干净的实现,因为它触发了很多次。我尝试调度“editLayoutChange”事件以响应项目渲染器上的“resize”事件,但我发现了非常不稳定的行为。是否有比updateDisplayList更好的发送此事件的选择
编辑-我正在收听updateDisplayList,因为渲染器在进入编辑模式时会更改大小(增长),并且可以在编辑过程中动态扩展。执行此类操作的常用方法是从
commitProperties发送-
在渲染器中:
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
if(editMode)
dispatchEvent(new Event("editLayoutChange"));
}
private var _editModeEntered:Boolean = false;
private var _editMode:Boolean;
public function set editMode(value:Boolean):void {
_editMode = true;
_editModeEntered = true;
invalidateProperties();
}
// probably want a getter for editMode too
override protected function commitProperties():void {
super.commitProperties();
if (_enteredEditMode) {
dispatchEvent(new Event("editLayoutChange"));
_enteredEditMode = false;
}
}
这确保仅当您明确更改了编辑模式时才会调度事件。您可以使用高级数据网格公共API滚动索引(索引)
滚动到行问题是,在“编辑模式”更改时,渲染器尚未调整大小,所以现在还不可能执行布局操作。此外,渲染器的大小可能在激活编辑模式后的稍后时间更改。