【问题标题】:The effect of BufferType.Normal and BufferType.Spannable for textViewBufferType.Normal 和 BufferType.Spannable 对 textView 的影响
【发布时间】:2021-01-09 11:21:50
【问题描述】:

我有这个代码:

    TextView tv1 = FindViewById<TextView>(Resource.Id.textView1);
    tv1.Text = "Text";
    SpannableString wordtoSpan = new SpannableString(tv1.Text);
    wordtoSpan.SetSpan(new UnderlineSpan(), 0, tv1.Text.Length, 0);
    tv1.SetText(wordtoSpan, TextView.BufferType.Normal);

无论我用BufferType.Normal还是BufferType.Spannable,文字下方都画了一条线, 文本下方出现一行。那么BufferType.NormalBufferType.Spannable的作用是什么?

【问题讨论】:

    标签: xamarin.android textview android-spannable


    【解决方案1】:

    TextView.BufferType:

    • 正常:正常;
    • 可编辑:可以追加字符;
    • 可跨度:在给定字符区域使用样式;

    定义文本特征的文本缓冲区类型,例如静态、可样式或可编辑。它可用于在运行时更改 TextView。

    TextView.BufferType.Editable:插入

          TextView tv2 = FindViewById<TextView>(Resource.Id.textView2);
            tv2.SetText("Hello", TextView.BufferType.Editable);
            var s = tv2.EditableText;
            s.Insert(1, " Hello");
    

    输出:

    TextView.BufferType.Spannable:在单个Textview中设置不同的颜色

    TextView tv3 = FindViewById<TextView>(Resource.Id.textView3);
            tv3.Text = "Hello World";
            SpannableString wordtoSpan3 = new SpannableString(tv3.Text);
            wordtoSpan3.SetSpan(new ForegroundColorSpan(Color.Red), 0, 5, 0);  // "Hello" is red
            wordtoSpan3.SetSpan(new ForegroundColorSpan(Color.Blue), 7, 11, 0); // "orld" is blue
            tv3.SetText(wordtoSpan3, TextView.BufferType.Spannable);
    

    输出:

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2013-09-05
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多