android TextView onDraw IndexOutOfBounds

时间:2012-03-06 01:41:57

标签: android view

我有一个包含文件中文本的TextView。我根据内容应用并删除它的范围。一个文件出现了,当滚动到文件中的那个点/行时,只有在我应用了跨度(只是语法高亮跨度)时才从TextView onDraw中抛出一个IndexOutOfBounds。

java.lang.IndexOutOfBoundsException: getChars (4255 ... 4211) has end before start
    at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:947)

我的跨度可能会导致这种情况,我怎么能阻止它形成呢?

http://code.google.com/p/droidde/source/browse/src/com/eyecreate/droidde/RichEditText.java#63

编辑:这似乎不会发生在ICS上,只是Honeycomb似乎。

EDIT2:这些线似乎接近问题的根源。这些都在android.text.Layout.java

private float getLineExtent(int line, boolean full) {
    int start = getLineStart(line);
    int end = full ? getLineEnd(line) : getLineVisibleEnd(line);

此时,start和end是错误的数字,full是错误的。此外,如果我在我链接的源代码中注释掉第71-77行,那么这不会崩溃。(但删除功能)

0 个答案:

没有答案