`
remoteJavaSky
  • 浏览: 47887 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Flex TabNavigator 动态增删tab 后的bug (tab选择状态错误)

    博客分类:
  • Flex
阅读更多
最近用到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();     //更新tabBar
			return child;
		}
	}
}


0
0
分享到:
评论
4 楼 remoteJavaSky 2013-05-16  
gentleyan 写道

我还知道另外一种方法,比这个简单。


哈哈,你这是调戏我节奏啊    分享下思路散  或者Flex4 之后没这个问题了?

3 楼 gentleyan 2013-05-16  


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

相关推荐

    flex TabNavigator tab倒置

    "flex TabNavigator tab倒置"这个标题可能指的是开发者想要实现一个特殊的布局,即TabNavigator的选项卡位置或方向与默认设置相反,通常是垂直放置或底部显示。下面我们将详细讨论如何实现这种效果,并探讨相关的...

    flex3 tabnavigator一个很好的例子

    6. **数据绑定**:在Flex3中,TabNavigator还可以与数据模型进行绑定,根据数据动态生成选项卡,这在处理大量数据或需要动态生成界面的情况下非常有用。 在给定的文件列表中,`.actionScriptProperties`、`....

    Flex tabNavigator 的初级应用

    NULL 博文链接:https://zhangyinyou.iteye.com/blog/671128

    Flex4.6 带图标的TabNavigator的使用

    在Flex4.6中,`TabNavigator`是一个强大的组件,用于创建带有可切换选项卡的用户界面。这个组件允许用户通过点击不同的标签在多个视图之间进行导航,这对于组织大量内容或者提供多工作区的界面非常有用。在这个“带...

    flex checkboxtree 和可增加面板,可关闭的tab页

    4. **添加新Tab**:提供一个接口让用户添加新的`Tab`,这可能包括输入新Tab的标题或其他配置,然后在`TabNavigator`中动态创建和添加新`Tab`。 5. **保存和恢复状态**:为了提供更好的用户体验,可以考虑实现保存和...

    Flex中实现多行tab的源代码

    默认情况下,Flex的TabNavigator组件的TabBar控件只会在一行内显示Tab项,但通过自定义布局和样式,我们可以轻松实现多行Tab的展示。本示例将详细讲解如何在Flex中创建多行Tab,并提供相关源代码。 首先,让我们...

    Flex3 竖排TabNavigator

    在Flex3中,TabNavigator是一个容器组件,用于展示多个子组件,并通过标签页的形式进行切换。默认情况下,TabNavigator的标签页是水平排列的,但在这个特定的实例中,我们将讨论如何将TabNavigator的标签页设置为...

    Flex3 TabNavigator

    在Flex3中,TabNavigator是一种容器控件,用于展示多个视图,并且这些视图可以通过标签页进行切换。TabNavigator的每个标签页通常关联一个ViewStack或其他容器,用于存放不同的内容。然而,标准的TabNavigator并不...

    设置TabNavigator组件的标签头的自定义皮肤

    在开发移动应用或者Web应用时,常常会使用到导航组件来组织不同的页面,其中TabNavigator是一种常见的导航方式,它在底部或顶部展示一系列标签,用户可以通过点击这些标签切换不同的页面。在React Native或React.js...

    flex 遮盖式 TabNavigator

    在Flex中,TabNavigator是一种容器组件,用于创建带有可切换选项卡的用户界面。它允许用户在不同的内容区域之间轻松导航,每个区域对应一个单独的选项卡。"遮盖式 TabNavigator"可能指的是在设计时或运行时...

    flex模板,多TAB

    在本项目中,"flex模板,多TAB"是指一个实现了多个标签(Tab)页面切换功能的Flex应用。这样的设计通常用于创建具有多个视图或工作区的应用,让用户能够方便地在不同功能之间切换。 1. **MainView.mxml**:这是应用...

    flex 和 flexlib类库 实现 菜单和 TabNavigator

    NULL 博文链接:https://toeo.iteye.com/blog/644341

    React-Native 实现点击Tab标签切换Tab页面

    在React-Native开发中,创建一个用户界面时,Tab导航是一种常见的设计模式,它允许用户在不同的视图之间轻松切换。本教程将详细介绍如何使用React-Native中的TabBar组件来实现点击Tab标签切换Tab页面的功能。 首先...

    Flex中TabNavigator设置Tabs样式思路及

    在Flex框架中,TabNavigator组件是用来创建标签导航界面的一种方式,它能够展示一组标签页,每个标签页关联一个视图。在Flex应用中,为了提升用户体验,通常需要对TabNavigator的Tabs进行样式定制,使得它们更符合...

    flex TabNavigatorTab 选项卡标题标签皮肤设置

    这是一个封装好的flex项目,可以直接运行,TestTabNavigator.mxml是运行主页。里面定义了TabNavigator控件选中与被选中的皮肤类,皮肤类可以自己进行更改,也可以设置颜色渐变等等。希望对大家有帮助。

    Flex 选项卡的实现

    在Flex编程中,选项卡(Tab)是一种常见的用户界面组件,用于组织和切换多个视图或内容区域。本文将深入探讨如何在Flex中实现选项卡功能,并通过代码示例和实际效果展示其工作原理。 首先,我们需要理解Flex的基础...

    Rn Tab导航封装

    例如,当应用的某个状态改变时,可以调用API更新TabNavigator的配置,增加、删除或修改Tab。同样,标题栏的设置也可以动态调整,比如根据当前页面的内容改变标题。 三、封装的优势 1. **代码复用**:封装后的Tab...

    TabNavigator_ScrollableMenu

    《TabNavigator_ScrollableMenu:打造更优交互的Tab导航体验》 在Flex开发中,TabNavigator组件是常用于创建带有可切换选项卡的应用界面。然而,随着应用复杂度的提升,用户对于更加灵活和易用的选项卡导航的需求也...

    flex动态导航跳转页面

    Flex动态导航跳转页面是一种基于Adobe Flex技术构建的交互式用户界面,主要用于Web应用程序的开发。Flex是一个开源框架,它允许开发者使用ActionScript语言和MXML标记语言来创建丰富的互联网应用(RIA)。在本场景中...

    Rn Tab导航

    1. **TabNavigator**: 这是整个Tab导航组件的基础,它接收一系列的配置项,如`tabs`(包含每个Tab的内容)、`initialTab`(初始选中的Tab)以及`configureScene`(定义页面过渡效果)等。 2. **Tab**: 每个Tab都是...

Global site tag (gtag.js) - Google Analytics