maxLine 遇到的坑

Android 的TextView 里面有两个属性 singLine 和maxLines 。 从字面意思来理解,这两个都是限制Text的行数。那么singleLine="true" 和maxLine="1" 都是限制为一行,有什么区别呢?
先看看Google Document 的解释:
android:maxLines Makes the TextView be at most this many lines tall.
android:singleLine Constrains the text to a single horizontally scrolling line instead of letting it wrap onto multiple lines, and advances focus instead of inserting a newline when you press the enter key.
可以看出,maxLines 是在限制高度, singleLine 是强制不让换行。具体效果有什么区别呢? 从高度来讲是一样的,两者肯定都显示一行,但从换行的位置来讲就有区别了,maxLines并不会改变其换行的位置,而singleLine则会。从这个角度讲,singleLine的显示会好一些,因为如果超过一行singleLine会在一行内显示,后面加上"...",而maxlines="1" 则不会,它依然会在原来换行的位置换行,所以有时候一行不满,但是却不显示剩下的部分。
我遇到的坑是这样的,webView 的标题过长,需要设置为跑马灯的效果,在使用时我是这样写的代码:


image.png

使用了maxline ="1" 和ellipsize,结果就导致Android部分机型出现crash,友盟统计到的的是5.1手机,具体其他机型crash情况不太确定,后来查一下知道,ellipsize 要与singleLine配合使用才行,如果是其他情况,建议还是使用maxLine, 但是与跑马灯效果配合使用的时候一定要用singleLine。


android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

  

你可能感兴趣的:(maxLine 遇到的坑)