
flex label 中文和英文自动截断怎么取消
2017-12-21
方法/步骤
1
在做项目的过程中,我发现用Flex中的组件TitleWindow时,如果Label中的内容过长,会把其他的组件或控件样式弄乱,甚至把它们从窗口中挤出去。为了解决这个问题,我查阅了不少资料,但是真正有用的却很少。
我尝试自己解决这个问题,于是新建了一个应用程序测试,如下图所示:
2
在网上说,对于Flex3版本,是用truncateToFit="true"这个属性来解决Label内容过长的问题;对于Flex4的版本,设置Label的高度、lineBreak="explicit"和
maxDisplayedLines="1"
我用的是Flex4版本,也将Flex3版本的办法和Flex4版本的办法都试过了,但是这个问题根本没有解决,样式还是混乱的
为了测试,我新建了一个TitleWindow组件,如下图所示
3
在Flex应用程序中,调用TitleWindow组件
/**
* 打开Window函数
*/
protected function textArea_clickHandler(event:MouseEvent):void
{
var textWin:TextWin = TextWin(PopUpManager.createPopUp(this,TextWin,true));
PopUpManager.centerPopUp(textWin);
}
如下图所示:
4
在TitleWindow组件中添加含有Label的控件
<mx:VBox width="100%" height="100%">
<mx:Form>
<mx:FormHeading label="测试Label内容的长度"/>
<mx:FormItem label="名称">
<s:Label text="负担和风景都看过了快乐"/>
</mx:FormItem>
<mx:FormItem label="地址">
<s:Label text="********************************************************************************************************************************************************************************************************"
width="300"/>
</mx:FormItem>
<mx:FormItem label="电话">
<s:Label text="18785656562"/>
</mx:FormItem>
</mx:Form>
<mx:HBox width="100%" height="30" horizontalAlign="center">
<s:Button id="closeBtn" label="关闭"/>
</mx:HBox>
</mx:VBox>
5
运行Flex应用程序,并点击按钮,会看到弹窗中的label内容已经挤到外面,而且窗口中的关闭按钮也已经漂移了
6
于是,我在Label标签中添加一个宽度width="300",结果发现Label内容都在窗口内,而且超过这个长度的内容自动换行
这样,我得出一个结论:在Flex4中,如果Label中的内容过长,可以使用确切的宽度值来限制
下面两个步骤是验证网上的办法,作为一个对比
END
1
将truncateToFit="true"添加到Label,出现了错误
无法为组件类型“spark.components.Label”解析属性“truncateToFit”。
所以这个办法用到Flex4上失效
END
将Label中的width换成
height="100%" lineBreak="explicit" maxDisplayedLines="1"
运行Flex应用程序,并单击按钮
发现Label中的内容还是超过窗口的界限
对比方法一:
对比方法二: