Mat*_*ers 2 android textview android-layout
我有一个TextView字体sans-serif-light.要链接里面的一些单词,我将文本设置为Spannable如下:
final Spannable text = new SpannableString(textView.getText());
final Matcher matcher = PATTERN_TAG.matcher(text);
while (matcher.find()) {
text.setSpan(span, startIndex, endIndex, 0);
}
textView.setText(text);
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
在Span我申请套字的字体sans-serif-medium是这样的:
public abstract class ClickableTagSpan extends ClickableSpan {
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
}
}
Run Code Online (Sandbox Code Playgroud)

问题是文本TextView在某些行中变得太宽,因为中等字体的宽度大于原始设置的浅色字体.在TextView简单地切断与右边的文本.如何才能TextView尊重文本的正确宽度?
解决它通过设置一个额外的TypefaceSpan,而不是修改ClickableSpan.
text.setSpan(clickableSpan, startIndex, endIndex, 0);
text.setSpan(new TypefaceSpan("sans-serif-medium"), startIndex, endIndex, 0);
Run Code Online (Sandbox Code Playgroud)
这使得TextView正确包装文本.
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |