我正在尝试以下列形式对程序进行评论的布局:
我希望USER_NAME处于Bold状态,DATE处于Enphasis状态(红色部分应该正常,我不希望它变红)。我的问题来自红色部分。我不能使用布局来显示这样的冷却,我已经能够得到:
和
有没有办法让评论像我正在展示的那样运作。我想过一个多格式的textView,它可以吗?
如果无法获得这样的评论,那就说这是不可能的。
答案 0 :(得分:2)
一种可能的解决方案是将两个TextView
逐个放入Linear
布局,然后使用SpannableStringBuilder
将格式化文本分配给第一个视图。
SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(text);
sb.setSpan(createBoldSpan(), 0, lengthOf(userName),
Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
firstTextView.setText(sb, TextView.BufferType.NORMAL);
createBoldSpan
应该返回TextAppearanceSpan
private TextAppearanceSpan userNameSpanInBold(String userName) {
return new TextAppearanceSpan(...);
}
请关注TextAppearanceSpan
的API文档 - 您可以使用自定义样式创建一个。
答案 1 :(得分:0)
如果HTML标记很好,你可以使用带有loadData的WebView,或者深入研究Spannable文本领域。
我自己没有使用Spannable文本,但实际上它允许您将属性(例如样式和颜色)附加到TextView中的部分文本。
相关方法是TextView.setText(CharSequence text, TextView.BufferType type),BufferType为SPANNABLE。我见过的文件......令人困惑。