FLex3中弹出窗口包含TabNavigator时标签页的标题可能显示不完全的问题及解决方法
来源:互联网 发布:mac 装安卓 编辑:程序博客网 时间:2024/05/27 09:45
Application的代码如下
弹出窗口MyPanel的代码如下
运行后发现第一个标签页的标题显示为“基本...”。
经跟踪后发现,Flex执行代码的顺序如下
在Tab的measureText方法中,由于第一个标签页的样式名称为activeTabStyle,所以会调用UITextFormat.measureText()并最终调用UITextFormat.measure()来获取标题的宽度。在计算宽度时,执行语句
调用TextFieldFactory的createTextField方法来获取一个文本控件TextField,然后设置该文本控件的text并获取宽度。
TextFieldFactory的createTextField方法获取文本控件的方式似乎是获取最后一个创建的文本控件,如果tabNavigator的creationPolicy为auto,会获取到clostBtn的textField,如果tabNavigator的creationPolicy为all,则会获取到msgLbl的textField。由于标签页的标题默认是加粗显示,所以如果获取到的TextField的样式不是加粗(fontWeight != 'bold'),那么计算出来的宽度会小于实际的宽度,从而使显示出来的标题被截断。(在Flex中,Label默认不加粗,Button的文本默认加粗)
因此,问题的解决方法有3种:
1.增加样式activeTabStyle并设置字体不加粗。下面的代码为了统一标题的样式,也设置了TabNavigator的tabStyleName样式。
2.保证最后一个文本控件的字体是加粗的。如以上的代码如果TabNavigator的creationPolicy是默认的auto,则由于closeBtn默认是加粗的,因此可以不设置。如果creationPolicy是all,则必须保证最后一页的最后一个控件的字体是加粗的,也可以放一个不显示的Label,如
3.在第一个标签页的label后加一个空格,如
经试验,所需空格的数量标题的长度有关,当标题只有一个字时不用加空格,之后每增加4个字要加一个空格。
如果弹出窗口时不执行PopUpManager.centerPopUp(),或者不用弹出窗口、TabNavigator直接显示在Application中,此时TabNavigator显示出来后会再刷新一次从而显示正确的标题,因此不需做任何改动。
- FLex3中弹出窗口包含TabNavigator时标签页的标题可能显示不完全的问题及解决方法
- FLex3中弹出窗口包含TabNavigator时标签页的标题可能显示不完全的问题及解决方法
- Android的Service中弹出窗口解决方法
- Android的Service中弹出窗口解决方法
- Android的Service中弹出窗口解决方法
- flex 中弹出窗口模式的问题
- 高版本IE中弹出窗口不显示IE地址栏的解决方法
- 关于WebBrowser中弹出窗口(alert,confirm)的问题
- Android 在Service中弹出窗口及SYSTEM_ALERT_WINDOW权限解决方法
- 关于LinkButton.enabled = false时,去掉javascript中弹出窗口的问题
- fancybox中弹出窗口的设置
- 编译过程中弹出new(35) : error C2061: syntax error : identifier 'THIS_FILE'问题的原因及解决方法
- iframe不完全显示的解决方法
- 标签控件中显示对话框出现的问题及解决方法
- 在网页中弹出一个小的警告小窗口
- 在网页中弹出JFame容器的窗口
- Android的Service中弹出窗口解决方…
- MFC中弹出对话框,父窗口消失不见的实现
- MP3音频文件信息ID3
- 文思创新面试——java(杭州2011-02-24)
- refresh iframe
- FreeBSD SSH配置详解
- 学习c/c++技术小结
- FLex3中弹出窗口包含TabNavigator时标签页的标题可能显示不完全的问题及解决方法
- 初识枚举类
- Gallery与ImageSwitcher的综合使用
- 服务器 导出excel
- ISO8583包简介和源代码
- WIN7下安装Oracle
- android环境搭建
- 论文中参考文献中大写字母的含义
- Java语法总结-- 异常(转帖)