【问题标题】:SpannableStringBuilder not displaying text in Text ViewSpannableStringBuilder 不在文本视图中显示文本
【发布时间】:2019-11-28 05:37:06
【问题描述】:

我正在尝试在 RecyclerView 内的文本视图中单独单击一个字符串数组(每个标签将传递不同的数据,这些数据是在加载时从 api 获取的)。我在bindView 方法中使用SpannableStringBuilder 创建了字符串,如下所示。

fun bindView(link: PostsModel)
     val tags = link.topics
     var spans = SpannableStringBuilder()

     for (tag in tags) {
         val string = SpannableString(tag.name)
         string.setSpan(ClickableTags(tag.name), 0, tag.name.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
         spans.append(string)
     }
}

然后我将其设置为文本视图。

view.headerTags.setText(spans, TextView.BufferType.SPANNABLE)

如果我println()spansview.headerTags.text 的内容,我可以看到它包含一串标签,所以它似乎正在工作。但是,在应用中进行测试时,它不会出现在文本视图中。

如果我设置view.headerTags.text = "Tags should appear here",它可以工作,所以我不确定文本视图是否有问题。

看不出为什么它不会出现,尤其是在控制台打印出文本视图的内容时?谁能让我知道我在这里可能缺少什么?

【问题讨论】:

  • 看起来文字颜色可能是透明的或黄色的?添加了 `string.setSpan(ForegroundColorSpan(Color.BLACK), 0, tag.name.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)`,现在似乎可以使用了

标签: android kotlin spannablestringbuilder


【解决方案1】:

请使用

    Spannable word2 = new SpannableString("By signing in, I agree to The xxxxx\nxxxxxxx Terms of Service and Privacy Policy.");
    word2.setSpan(clickableSpan, 44, 60, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    word2.setSpan(clickableSpan1, 65, 80, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(word2);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    textView.setHighlightColor(Color.TRANSPARENT);

   ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(View textView) {
        Intent intent = new Intent(SignInActivity.this, ReadTermsOfServiceActivity.class);
        intent.putExtra("FROM", "termsservices");
        startActivity(intent);
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
    }
};

【讨论】:

  • 我需要使用SpannableStringBuilder,因为我得到了一组标签,所以在bindView() 触发之前我不知道字符串是什么。
猜你喜欢
  • 1970-01-01
  • 2017-05-25
  • 2019-03-13
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多