第一 widget 面板里面的切换
如 Bookmarks里面的面板切换 如何实现?
如果要使用 esri 的模板 那么 一定要继承BaseWidget
定义状态
<viewer:states>
<s:State name="first"/>
<s:State name="second"/>
<s:State name="third"/>
</viewer:states>
我这里定义了三个 状态 对应三组面板 。 注意 这里定义的状态 是为了 和后面的 group 绑定 。在 设置不同的状态 可以 让 绑定的 group 可见。
对每个面板 设置 图片 标题 , 以及点击标题之后的处理事件
设置
wTemplate.addTitlebarButton(ICON_URL + "i_searchgraphical.png", "aaaa", show1);
wTemplate.addTitlebarButton(ICON_URL + "i_searchtext.png", "bbbb", show2);
wTemplate.addTitlebarButton(ICON_URL + "i_table.png", "cccc", show3);
show1 事件 目的 是让当前状态激活状态 设置成 firt 。
public function show1():void
{
Alert.show("aaa");
this.currentState="first";
}
public function show2():void
{
Alert.show("bbb");
this.currentState="second";
}
public function show3():void
{
Alert.show("ccc");
this.currentState="third";
}
<viewer:WidgetTemplate id="wTemplate"
width="300" height="300"
>
<s:Group id="first" width="100%" height="100%" includeIn="first">
<s:Label text="first" visible="false">
</s:Label>
</s:Group>
<s:Group id="second" width="100%" height="100%" includeIn="second">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle">
</s:VerticalLayout>
</s:layout>
<s:Scroller width="100%" height="100%">
</s:Scroller>
<!--<HelloWorld:PersonItemRenderer mytext="abc" click="personitemrenderer1_clickHandler(event)"/> -->
<HelloWorld:PersonDataGroup id= "datarroup" dataProvider="{persons}" >
<HelloWorld:layout>
<s:VerticalLayout gap="2"
horizontalAlign="justify"
useVirtualLayout="true"/>
</HelloWorld:layout>
</HelloWorld:PersonDataGroup>
<s:Label text="second">
</s:Label>
</s:Group>
<s:Group id="third" width="100%" height="100%" includeIn="third">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle">
</s:VerticalLayout>
</s:layout>
<s:Label text="third">
</s:Label>
</s:Group>
</viewer:WidgetTemplate>
使用 esri 的模板 WidgetTemplate 这里 定义了<viewer:WidgetTemplate id="wTemplate"> 注意 这里的id 属性 wTemplate
在定义标签时使用过
wTemplate.addTitlebarButton(ICON_URL + "i_searchgraphical.png", "aaaa", show1);
下面看看这里的group 是怎么回事
这里 要设置 成三组 ,group 是一个容器 ,你可以使用其他的容器 不一定非要使用group
includeIn="first" 目的 是让 group 和状态 first 绑定
visible="false" 的目的是为了实现 业务逻辑,只要某些条件满足时才让他们显示 。