有没有办法使用span
中的textview
为一段文字添加标签字符?在开发人员文档中,我遇到了TabStopSpan
(see here)并试图在TextView
中使用它,如下所示:
String source = "Hello World! Let's select some text!!";
SpannableString s = new SpannableString(source);
s.setSpan(new TabStopSpan() {
@Override
public int getTabStop() {
return 100;
}
}, 5, 10, 0);
ed.setText(s, BufferType.SPANNABLE);
其中ed是TextView
。上面的代码段没有做任何事情,文档也没那么简单。有没有办法使用跨度向TextView
添加制表符?
答案 0 :(得分:4)
是。结合" \ t"和TabStopSpannable将成功。 下面的代码片段在firstString和secondString之间添加了一个标签:
SpannableStringBuilder span = new SpannableStringBuilder(firstString +"\t"+ secondString);
span.setSpan(new TabStopSpan.Standard(600), 0, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
}
((TextView) v).setText(span, TextView.BufferType.SPANNABLE);
小心在TabStopSpan.Standard构造函数中使用有意义的值,最好是基于screendimensions。
答案 1 :(得分:1)
只需为标签添加“\ t”,为新行添加“\ n”。 例如:
String source = "Hello!\tLets select some text!";
答案 2 :(得分:0)
使用它。
public static SpannableStringBuilder getTabText(String text, float stop)
{
int column = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, stop, SystemMaster.getResources().getDisplayMetrics());
SpannableStringBuilder span = new SpannableStringBuilder(text);
span.setSpan(new TabStopSpan.Standard(column), 0, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return span;
}
然后
Text text = "xx \t yy \n aa \t bb";
SpannableStringBuilder sp = TextHelper.getTabText(text, 100);
tv.setText(sp);