连续调用SpannableStringBuilder.setSpan时参数Object what不能使用同一个引用

来源:互联网 发布:淘宝绫致时装官方店是 编辑:程序博客网 时间:2024/05/16 19:20

当连续调用SpannableStringBuilder.setSpan时,第一个参数Object what不能使用同一个引用,否则只有最后一个设置有效

这是因为SpannableStringBuilder内部会保存设置的所有object,每次setspan都会先判断是否已存在该object


private void setSpan(boolean send, Object what, int start, int end, int flags) {

………

 for (int i = 0; i < count; i++) {
            if (spans[i] == what) {
                int ostart = mSpanStarts[i];
                int oend = mSpanEnds[i];

……
                mSpanStarts[i] = start;
                mSpanEnds[i] = end;
                mSpanFlags[i] = flags;

……

}

0 0
原创粉丝点击