TextView开发小细节

TexitView 在开发中是一个非常常见的控件,但是在限制字符串行数的时候,存在两个属性都可以控制单行。为啥google采用两种实现方式呢?

Android 的TextView 里面有两个属性 singLine 和maxLines 。 从字面意思来理解,这两个都是限制Text的行数。那么singleLine=“true” 和maxLine=“1” 都是限制为一行,有什么区别呢?

先看看Google Document 的解释:

android:maxLinesMakes the TextView be at most this many lines tall. 
android:singleLineConstrains 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” 则不会,它依然会在原来换行的位置换行,所以有时候一行不满,但是却不显示剩下的部分。