EditText添加了ImageSpan后,在两者中间不能输入纯文本
严格来说是连续插入两个ImageSpan之后,在其中间不能够输入纯文本内容。
最后发现问题出现在了SpannableString在设置ImageSpan的时候第四个参数flag的问题。
spannable.setSpan(span, matcher.start(), matcher.end(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
第四个参数的含义是,在插入的ImageSpan前后内容是否使用Span特性。设置为Spannable.SPAN_EXCLUSIVE_EXCLUSIVE,前后都不包含就搞定了。
第一个参数是设置的内容所用的Span对象(每次setSpan必须new一个新的Span,内部会检查否则只有最后一个才会使用Span);
第二个参数是使用Span的起始位置(包括这个索引);
第三个参数是使用Span的结束位置(不包括这个索引);