Android系统。文本跨度在退格按下时消失,整体上表现得很奇怪

时间:2014-04-26 08:20:57

标签: android text html backspace spanned

我需要实现一个所见即所得的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>

但是当我第一次按退格键时,只有一个单词的最后一个符号保持粗体。再过一次,整个单词变得正常(即不粗体)。我google了很多,试图在按下退格键时重新应用跨度(如果更改后的文本更短)。我尝试将span类型更改为INCLUSIVE等。我尝试了DroidWriter,它与退格键的工作方式相同。

如果我在非粗体字的中间打开粗体,反之亦然,它的工作方式也不一样。

我很快就需要解决方案,现在我已经上了几天了。提前谢谢!

0 个答案:

没有答案