Что такое флаговая переменная в сборке 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 ответ

Этот флаг устанавливается для промежутков, которые используются для применения временной информации о стилях к составному тексту метода ввода, чтобы их можно было найти и удалить при замене составного текста.

Другие вопросы по тегам