Android Quick Tips #1 — TextView

原文by Norman Peitek 翻译by Dexter0218

直入主题,这周会围绕Android的TextView,介绍一些小技巧。

Android TextView

每个Android开发者都用过TextView,可能已经知道下面的一些技巧。但以防万一,都列举出来了:

空字符串 和 Null检查

你是不是很厌倦写下面的代码:

String someString = getStringFromObjectOrApi(): // this is some external dependency

if (someString != null && !someString.isEmpty()) {
    // do something with the string, e.g. set on TextView   
}
else {
    // do something in case the string is null/empty, e.g. hide the TextView
}

有许多外部的库可以让if语句的条件更为简单。但由于Android的TextUtils类包含了isEmpty()方法,那就没有必要用外部库了。使用这个方法可以让代码更易读、易写:

String someString = getStringFromObjectOrApi(): // this is some external dependency

if (!TextUtils.isEmpty(someString)) {
    // do something with the string, e.g. set on TextView   
}
else {
    // do something in case the string is null/empty, e.g. hide the TextView
}

限制TextView的长度匹配屏幕大小

如果你的app从服务器动态加载数据,你应当需要处理好极端数据。如果返回的是null的字符串,将会发生什么?或者返回非常长的字符串呢?如果你直接加载这些字符串,它可能会破环你的整个布局,并且让你的app看起来很糟!一个简单的方法:限制文本在一行内,并在尾部用一个省略号(...)表明不是一个完整的文本。只要在你的TextView布局文件中添加两行就可以实现:


如果一个TextView可以不止一行,但是仍然应该通过使用maxLines,限制其行数。例如,三行以后的文字将被截取:


在屏幕上滚动显示文字

如果喜欢之前的建议,但是我们仍然担心由于被截断了,导致一些重要的内容被隐藏,你可以考虑使用marquee让文字在屏幕上滚动显示。XML文件里的配置非常简单:


使用marquee时要当心,因为你并不希望用户得到像看到90年代的网页一样糟糕体验。

提示:有时marquee在一些子布局中会十分棘手,看看stackoverflow的这个主题找找帮助。

你可能感兴趣的:(Android Quick Tips #1 — TextView)