Что такое флаговая переменная в сборке SpannableStringBuilder
Я прочитал параметр flags в Google Docs, но не могу найти, что именно он делает. Например, в приведенном ниже коде:
SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
myTextView.setText(builder1);
Нет разницы, если вы измените 4-й параметр и установите переменные следующим образом: Spanned.SPAN_INCLUSIVE_INCLUSIVE,Spanned.SPAN_INCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE.
Там нет никакой разницы в результате.
Но когда запустить этот код:
SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder builder2 = new SpannableStringBuilder();
builder1.append("second test this is going to be different");
builder1.setSpan(new BackgroundColorSpan(Color.BLUE), 10, 15, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder all = new SpannableStringBuilder();
all.append(builder2);
all.insert(0, "\n");
all.insert(0, builder1);
Вы получите разные результаты на основе 4-го параметра, который вы передаете в builder1.setSpan
Может кто-нибудь объяснить, почему это происходит?
1 ответ
Этот флаг устанавливается для промежутков, которые используются для применения временной информации о стилях к составному тексту метода ввода, чтобы их можно было найти и удалить при замене составного текста.