测试 app 时,我们的测试发现了小米手机上一个神奇的问题

2017-07-08 11:12:57 +08:00
 qzrsaaa

对一个 TextView 控件进行单行限制,代码如下:

<TextView
        android:id="@+id/single_number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:lines="1"
        android:textSize="20sp"/>

没什么特别的地方,然后对这个控件进行内容填充的时候,问题来了。 填充内容如下:

"    3345435646347453765735675765867846536456436246"

注意前面有几个空格。 结果小米手机展示的样式是:

为什么会这样,难道是小米对分词做了处理?

6570 次点击
所在节点    Android
8 条回复
qzrsaaa
2017-07-08 11:25:08 +08:00
如果不加空格的话不会有问题,加了空格之后,就会出现后面的数字全部不显示了。。。
beimenjun
2017-07-08 11:29:45 +08:00
被识别成电话号码了?
qzrsaaa
2017-07-08 11:47:39 +08:00
我试过如果 lines 设置 2 行的话,那一串数字就会显示到第二行
rogerchen
2017-07-08 12:32:28 +08:00
android:ellipsize="end"
根据文档[1],显示头四个字符 + ...,完美贴和你的情况。


[1]https://developer.android.com/reference/android/widget/TextView.html#attr_android:ellipsize
qzrsaaa
2017-07-08 13:30:33 +08:00
android:ellipsize="end" 这属性设不设置无所谓,不设置的话,就直接显示一行空白了
BigBearWatchYou
2017-07-09 17:54:01 +08:00
标题强调了小米系统的话,建议在正文贴上其他系统的表现会更切题一些
pcatzj
2017-07-10 09:31:35 +08:00
你不是少了个“ maxLines ”?
bewareofbears
2017-07-14 17:32:16 +08:00
单行控制.某些情况下 maxLines 在部分机型上也有问题.遇到了.就把 singleLine 用回来.
一般 maxLines 就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/373897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX