在MXML中,当我向ViewStack
和creationPolicy
添加组件auto
时,组件在我切换到它们之前不会被实例化。说,我有以下代码:
<mx:ViewStack creationPolicy="auto">
<s:NavigatorContent>
<s:DataGrid id="dg1" width="300"/>
</s:NavigatorContent>
<s:NavigatorContent>
<s:DataGrid id="dg2" width="100"/>
</s:NavigatorContent>
</mx:ViewStack>
如何在ActionScript中复制此行为? 问题是我的DataGrids包含大量数据,因此我不希望它们同时创建。
答案 0 :(得分:0)
看起来ViewStack类上有一个creationPolicy属性。这样的事情应该有效
var v:ViewStack = new ViewStack();
v.creationPolicy = "auto";
var t1:NavigatorContent = new NavigatorContent();
t1.addElement(new DataGrid());
v.addElement(t1);
答案 1 :(得分:0)
请尝试使用此
var v:ViewStack = new ViewStack();
v.creationPolicy = "auto";
var container:SkinnableContainer = new SkinnableContainer();
container.creationPolicy = "none";
var dg:DataGrid = new DataGrid();
container.addElement(dg);
var t1:NavigatorContent = new NavigatorContent();
t1.addElement(container);
v.addElement(t1);
在viewstack_change处理程序之后,我们需要调用
container.createDeferredContent()
根据您要查看的索引视图。