【问题标题】:I am trying to use spannable on Marshamallow. Its giving me incorrect output我正在尝试在 Marshamallow 上使用 spannable。它给了我不正确的输出
【发布时间】:2016-10-21 08:50:02
【问题描述】:
        SpannableString text = new SpannableString("RAHUL");
        text.setSpan(new ForegroundColorSpan(white), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new ForegroundColorSpan(blue), 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        headerHolder.mTextViewLabel.setText(text, TextView.BufferType.SPANNABLE);

我只得到“HL”作为输出。

【问题讨论】:

  • 预期输出是两种不同颜色的 RAHUL,即白色的 RAH 和蓝色的 UL。
  • 这是因为 whiteblue 都是 0(或者至少第 24-31 位是零)
  • @pskink 我用黄油刀来注入颜色。 @BindColor(R.color.blue) 诠释蓝色; @BindColor(R.color.white) int 白色;我想这有些问题。如果我使用 Color.BLUE 代替它工作正常。
  • Log.d蓝色和白色的值,它们是什么?
  • @pskink 是的,他们只有 0。谢谢。

标签: android textview spannablestring spannable


【解决方案1】:

用输出检查这个

  SpannableString text = new SpannableString("RAHUL");
        text.setSpan(new ForegroundColorSpan(Color.WHITE), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new ForegroundColorSpan(Color.BLUE), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        tv.setText(text);

棉花糖上的输出

希望对你有帮助

【讨论】:

  • 我正在使用黄油刀来注入颜色。 @BindColor(R.color.blue) 诠释蓝色; @BindColor(R.color.white) int 白色;我想这有些问题。如果我使用 Color.BLUE 代替它可以工作。
【解决方案2】:

第二个setSpan 的开始和结束参数是错误的:

SpannableString text = new SpannableString("RAHUL");
text.setSpan(new ForegroundColorSpan(Color.WHITE), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
text.setSpan(new ForegroundColorSpan(Color.BLUE), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
headerHolder.mTextViewLabel.setText(text, TextView.BufferType.SPANNABLE);

【讨论】:

    【解决方案3】:

    试试这个可能对你有帮助 改变

        text.setSpan(new ForegroundColorSpan(white), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new ForegroundColorSpan(blue), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    

    而不是这个

        text.setSpan(new ForegroundColorSpan(white), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        text.setSpan(new ForegroundColorSpan(blue), 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多