2016-12-19 4 views
0

Я читаю флажок в документах Google, но я не могу найти, что именно он делает. Например, в коде ниже:Что такое переменная переменной в здании SpannableStringBuilder

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

Может кто-то объясняет, почему это происходит?

ответ

0

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

+0

я не могу понимаете, что вы имеете в виду? Не могли бы вы привести пример? – Hojjat

+0

Например, вы пытаетесь изменить цвет текста динамически, так что строка Spannable выполняет временный стиль после того, как ваш стиль будет выполнен, для его удаления потребуется некоторый ключ, и этот флаг действует как ключ –

Смежные вопросы