我有一个TextView,它包含一个Spannable字符串.该字符串包含一堆文本,其中第一个单词的类型大小是字符串其余部分的两倍.
问题在于,由于第一个字的大小增加,第一和第二行之间的行间距远大于后续行之间的行间距.
http://img.skitch.com/20100615-fwd2aehbsgaby8s2s9psx3wwii.png
spannable字符串是使用以下代码段创建的:
// Price
CharSequence text = "$30 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
final Pattern priceRegex = Pattern.compile("^(.[0-9]+)\\s.*");
final Matcher m = priceRegex.matcher(text!=null ? text : "");
if( m.matches() ) {
text = new SpannableString(text);
((SpannableString)text).setSpan(new RelativeSizeSpan(2), 0, m.end(1), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
Run Code Online (Sandbox Code Playgroud)
如何修复TextView以使所有行具有相同的间距?
小智 43
您可以尝试使用以下TextView属性之一:
android:lineSpacingMultiplier
android:lineSpacingExtra
Run Code Online (Sandbox Code Playgroud)
至少尝试使所有线条具有相同的高度(与第一个相同).
我认为你不能:(。Android操作系统根据字体大小计算行之间的间隙,因此'30$'使第1行和第2行之间的间隙更大,我不知道是否可以控制这个间隙的大小。
为了解决这个问题,您可以轻松扩展 LinearLayuot 并将方向设置为垂直。比把 2 个带有 fillparent 的文本视图作为宽度......
然后实现函数,比方说 setNoGapText(String s); ,在这个函数中,您可以测量可以适合顶部文本视图的文本(这可以使用textutils完成),并且其余文本将适合文本视图2...
在此文本视图之间,您可以使用填充和边距属性,以便行之间的间隙看起来就像您想象的那样。
| 归档时间: |
|
| 查看次数: |
34290 次 |
| 最近记录: |