设置文字单行显示一般是如下两种写法
android:maxLines="1"
android:maxLines="1"
但是用 singleLine 的时候会提示下图
建议我们用 maxLines = 1 替换 singleLine,这导致很多人会以为这两者是等价的。
然后我最近遇到的一个问题,然后发现这两个其实还是有区别的!
问题是这样,一个textview设置了单行显示文字,但是发现文字会比截取一半,如下图
图中的文字被截断了一半,这样的显示效果肯定是不能接受了,中间尝试了各种别的办法都没有解决这个问题,最后的最后,才发现是singleLine的锅。
singleLine是将TextView内的所有问题排在了同一行,强制不换行,超过TextView宽度的部分我们只是看不到,但是其实还是在后面的。
maxLines是限制TextView的最大行数,而我们可以设置值为1来达到单行显示的效果
举个列子,现在的文字正常展示需要3行,而singleLine是将这3行的文字都展示在第一行里,而 maxLines是有换行策略的,但是只展示给我们第一行。这也就是上面说的我遇到的问题的原因,maxLines会自动换行,所以不会出现文字被截断,而singleLine是一个横向的平铺,遇到TextView的边界的时候会被截断。
而后事实就是我将代码里的 singleLine 换成 maxLines = 1
该问题就得以解决了。