TabNavigator使用心得

做了一个控件很长时间,一直有两个问题困扰我。
1.        使用TabNavigator控件的第2个视图不点击就无法使用。
2.        Flex Debug无法使用跟踪

我的业务逻辑:
用户使用控件顺序,点击连接—》开始-》停止,当点击“开始”后,我的TabNavigator就要自动跳转第二个视图,显示直播过程中的信息。

问题原因:
由于”导航条容器内置推迟实例化”,导致每次执行到“开始”后,就会出现显示的TEXT控件是空对象 问题,没有实例化。

我的解决办法:
在初始化时,先用TabNavigator的selectedIndex属性跳转到第二个视图实例化,在初始化方法结束前,再用一样办法跳转回第一个视图实例化。

引发另一个问题,无法Debug跟踪:
        由于这次两个视图切换,引发Debug无法使用,主要表现在无法做跟踪调试。重新安装编译 环境都不行。
导航条容器内置推迟实例化-creationPolicy属性
Flex 中的导航条容器(ViewStack、Accordin、TabNavigator)中内置了推迟实例化。默认情况下,推迟实例化意味着 Flex 在启动时不会创建任何子视图,但用户通过导航到该容器可触发所有子视图的创建。
容器标签中的 creationPolicy 属性控制子视图的创建。下面的列表将解释 Flex 导航条容器每个 creationPolicy 属性设置的含义。

•        creationPolicy=“auto”
Flex 创建导航条容器时将不会立即创建所有的后代对象,只创建开始时可见的后代对象。这一推迟实例化行为的结果是带有导航条容器的 MXML 应用 程序 加载 很快,但从一个视图浏览至另一视图时,用户将等待短暂的停顿时间。可用性研究表明,与应用程序启动时为创建所有导航条子视图而等待较长时间相 比,这种用户体验更好。同样,用户可能从不访问某些子视图,因而在启动时创建这些子视图会浪费资源。注意,如果在一个非导航条容器上设置 creationPolicy 为“auto”,则必须加入额外的代码来指示何时创建该容器的子对象。这些额外代码已经内置进导航条容器中,因而可在导航条容器上设置 creationPolicy 为“auto”而无需任何额外的工作。
•        creationPolicy=“all”
Flex 创建导航条容器时将创建所有子视图中的所有控件。这一设置导致程序启动时有一个延迟,但在视图之间切换的响应时间将会较短。
•        creationPolicy=“none”
Flex 将不会实例化导航条容器中或者其子视图中的任何组件,直到实例化方法被显式调用 。可用 createComponents() 方法显式地实例化视图。Flex 文档中有更多关于设置自定义组件创建计划的信息。
通过设置 creationPolicy 属性,可手工创建子视图,并决定在应用程序架构的何处发生创建导航条容器子视图所需的资源占用。可用性研究显示,使用 auto 设置可取得较好的用户体验。一个常见的错误会延长应用程序启动时间,即错误地在某一个导航条容器上设定 creationPolicy=“all”。仅当能确保组件创建计划足够高效时可设置 creationPolicy 为“all”。
引用:http://www.zengrong.net/?p=353

现在解决问题方法:
        在TabNavigator的creationPolicy属性中设为all,就可以解决前面两个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值