Android. Текстовые интервалы исчезают при нажатии на клавишу Backspace и ведут себя странно
Мне нужно реализовать wysiwyg EditText, и я столкнулся с проблемой в самом начале. Поэтому я добавил следующий код в onTextChanged:
int textLen = textWord.getText().length();
if (s.length() > textWordBefore.length()) {
if (boldToggle == true) {
textWord.getText().setSpan(new StyleSpan(android.graphics.Typeface.BOLD), textLen-1, textLen, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
Я преобразовал составной текст в HTML, чтобы увидеть, как он работает. Он отлично работает, когда я добавляю символы. Сначала это выглядит так:
<b>a</b><b>b</b><b>c</b>
Затем я нажимаю пробел, и он меняется на это:
<b>abc</b>
Но когда я нажимаю клавишу Backspace в первый раз, только последний символ слова остается жирным. И через еще раз все слово становится нормальным (то есть не жирным шрифтом). Я много гуглил, пытался повторно применить диапазон, когда нажата клавиша возврата (если текст после изменения короче). Я попытался изменить тип диапазона на INCLUSIVE и т. Д. Я попробовал DroidWriter, и он работает так же, как и в случае возврата.
Это также работает не так, как предполагалось, если я включаю жирный шрифт в середине не жирного слова и наоборот.
Мне действительно нужно решение в ближайшее время, я был на нем в течение нескольких дней. Заранее спасибо!