我想仅为TextView的第一行设置起始边距(不是每个段落的第一行)?我使用了以下代码:
SpannableString s = new SpannableString("this is a test"+"\n"+"this is a test");
s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, s.length(), 0);
textView .setText(s);
这里开始为段落的所有行设置边距..我不想那样。我想将起始保证金仅适用于第一行。请帮助..
答案 0 :(得分:5)
你实际上已经回答了自己的问题 您需要做的就是将span lenght设置为1而不是s.length()。
if (s.lenght() > 0) {
s.setSpan(new android.text.style.LeadingMarginSpan.Standard(30, 0), 0, 1, 0);
}
这样,保证金只会应用于第一段。
答案 1 :(得分:2)
正如这里所建议的那样,我认为最好的解决方案是在开头添加一些空格。如果你只需要TextView
第一行的边距空间,我就没有理由说你为什么需要做一些非常先进的事情。
如果您稍后需要更改或使用TextView中的文本,则可以使用substring()
方法仅获取字符串的一部分,即s.substring(2, s.length());
这不是一个完美的解决方案,但我认为它会做到。