我使用 setLineSpacing() 来增加 textView 中的行间距,当我使用 Pixel API 25 模拟器对其进行测试时似乎还可以,但是当我使用 Nexus 6p API 23 对其进行测试时,直到换行(\n)都很好发生。然后在那之后,行之间的空间被重置。就像 setLineSpacing 只影响文本的一部分(第一段)。为什么会这样?
if (android.os.Build.VERSION.SDK_INT >= 23) {
textView.setLineSpacing(textView.getLineHeight(), 0.6f);
}
更新:我有点发现了问题,但到目前为止还没有解决方案。我使用 span 使 textView 中的第一个字母更大。
wordtoSpan.setSpan(new RelativeSizeSpan(2f), 2, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
实际上,setLineSpacing 方法确实增加了整个文本视图的行距,但由于 setSpan 使第一个字母变大,所以直到“\n”的第一行有一个额外的行距。它只发生在像 23 tho 这样的旧 API 中。