我需要实现一个所见即所得的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,它与退格键的工作方式相同。
如果我在非粗体字的中间打开粗体,反之亦然,它的工作方式也不一样。
我很快就需要解决方案,现在我已经上了几天了。提前谢谢!