读书人

Flex TabNavigator 动态增删tab 后的b

发布时间: 2012-11-14 10:12:18 作者: rapoo

Flex TabNavigator 动态增删tab 后的bug (tab选择状态错误)
最近用到Flex的TabNavigator控件,它需要动态的增删Children,当删除所有的Children再添加两个以上Children时就出现了bug,即上一次tab选择状态会保留下来,即使你设置selectedIndex为0,上一次选的是1它选择状态还会是1,这在用户体验上是绝对不友好的。网上没有搜索到解决办法,只好研究其源代码了,并最终找到了解决方案,把我自己写的继承的这个TabNavigator控件附上,希望对大家有帮助:

注释也写的很清楚

package common.containers{import flash.display.DisplayObject;import mx.containers.TabNavigator;/** * 本身的TabNavigator在更新本身时候不能更新TabBar,所以自己覆盖了一下  * @author Pursuit *  */public class MyTabNavigator extends TabNavigator{public function MyTabNavigator(){super();}/** *设置为null很重要,否则TabBar保存了状态而ViewStack却没有,                 *造成不 一致,给用户造成误解 *  */???       override public function removeAllChildren():void{super.removeAllChildren();  tabBar.dataProvider=null;   //否则下一次添加时,其tabBar不在更新了}/** * 重写此方法,目的是可以更新TabNavigator的tabBar控件,让其选择状态正确显示 * @param child * @param index * @return   */?       override public function  addChildAt(child:DisplayObject,index:int):DisplayObject{super.addChildAt(child, index);commitProperties();     //更新tabBarreturn child;}}}


1 楼 lijingjing_0725 2010-09-02 GG ..关于这个TabNavigator的tab项、、我们测试部提出一个BUg、是关于那个Tab上的关闭按钮、、这里不好说、、如果你在请回复。。我和你QQ聊、、希望GG能指导我、、、 2 楼 ifreecomm 2011-11-09 找了几个方案都不行,楼主很强大。。。。

读书人网 >flex

热点推荐