最近用到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;
}
}
}
分享到:
相关推荐
"flex TabNavigator tab倒置"这个标题可能指的是开发者想要实现一个特殊的布局,即TabNavigator的选项卡位置或方向与默认设置相反,通常是垂直放置或底部显示。下面我们将详细讨论如何实现这种效果,并探讨相关的...
6. **数据绑定**:在Flex3中,TabNavigator还可以与数据模型进行绑定,根据数据动态生成选项卡,这在处理大量数据或需要动态生成界面的情况下非常有用。 在给定的文件列表中,`.actionScriptProperties`、`....
NULL 博文链接:https://zhangyinyou.iteye.com/blog/671128
在Flex4.6中,`TabNavigator`是一个强大的组件,用于创建带有可切换选项卡的用户界面。这个组件允许用户通过点击不同的标签在多个视图之间进行导航,这对于组织大量内容或者提供多工作区的界面非常有用。在这个“带...
4. **添加新Tab**:提供一个接口让用户添加新的`Tab`,这可能包括输入新Tab的标题或其他配置,然后在`TabNavigator`中动态创建和添加新`Tab`。 5. **保存和恢复状态**:为了提供更好的用户体验,可以考虑实现保存和...
默认情况下,Flex的TabNavigator组件的TabBar控件只会在一行内显示Tab项,但通过自定义布局和样式,我们可以轻松实现多行Tab的展示。本示例将详细讲解如何在Flex中创建多行Tab,并提供相关源代码。 首先,让我们...
在Flex3中,TabNavigator是一个容器组件,用于展示多个子组件,并通过标签页的形式进行切换。默认情况下,TabNavigator的标签页是水平排列的,但在这个特定的实例中,我们将讨论如何将TabNavigator的标签页设置为...
在Flex3中,TabNavigator是一种容器控件,用于展示多个视图,并且这些视图可以通过标签页进行切换。TabNavigator的每个标签页通常关联一个ViewStack或其他容器,用于存放不同的内容。然而,标准的TabNavigator并不...
在开发移动应用或者Web应用时,常常会使用到导航组件来组织不同的页面,其中TabNavigator是一种常见的导航方式,它在底部或顶部展示一系列标签,用户可以通过点击这些标签切换不同的页面。在React Native或React.js...
在Flex中,TabNavigator是一种容器组件,用于创建带有可切换选项卡的用户界面。它允许用户在不同的内容区域之间轻松导航,每个区域对应一个单独的选项卡。"遮盖式 TabNavigator"可能指的是在设计时或运行时...
在本项目中,"flex模板,多TAB"是指一个实现了多个标签(Tab)页面切换功能的Flex应用。这样的设计通常用于创建具有多个视图或工作区的应用,让用户能够方便地在不同功能之间切换。 1. **MainView.mxml**:这是应用...
NULL 博文链接:https://toeo.iteye.com/blog/644341
在React-Native开发中,创建一个用户界面时,Tab导航是一种常见的设计模式,它允许用户在不同的视图之间轻松切换。本教程将详细介绍如何使用React-Native中的TabBar组件来实现点击Tab标签切换Tab页面的功能。 首先...
在Flex框架中,TabNavigator组件是用来创建标签导航界面的一种方式,它能够展示一组标签页,每个标签页关联一个视图。在Flex应用中,为了提升用户体验,通常需要对TabNavigator的Tabs进行样式定制,使得它们更符合...
这是一个封装好的flex项目,可以直接运行,TestTabNavigator.mxml是运行主页。里面定义了TabNavigator控件选中与被选中的皮肤类,皮肤类可以自己进行更改,也可以设置颜色渐变等等。希望对大家有帮助。
在Flex编程中,选项卡(Tab)是一种常见的用户界面组件,用于组织和切换多个视图或内容区域。本文将深入探讨如何在Flex中实现选项卡功能,并通过代码示例和实际效果展示其工作原理。 首先,我们需要理解Flex的基础...
例如,当应用的某个状态改变时,可以调用API更新TabNavigator的配置,增加、删除或修改Tab。同样,标题栏的设置也可以动态调整,比如根据当前页面的内容改变标题。 三、封装的优势 1. **代码复用**:封装后的Tab...
《TabNavigator_ScrollableMenu:打造更优交互的Tab导航体验》 在Flex开发中,TabNavigator组件是常用于创建带有可切换选项卡的应用界面。然而,随着应用复杂度的提升,用户对于更加灵活和易用的选项卡导航的需求也...
Flex动态导航跳转页面是一种基于Adobe Flex技术构建的交互式用户界面,主要用于Web应用程序的开发。Flex是一个开源框架,它允许开发者使用ActionScript语言和MXML标记语言来创建丰富的互联网应用(RIA)。在本场景中...
1. **TabNavigator**: 这是整个Tab导航组件的基础,它接收一系列的配置项,如`tabs`(包含每个Tab的内容)、`initialTab`(初始选中的Tab)以及`configureScene`(定义页面过渡效果)等。 2. **Tab**: 每个Tab都是...