diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt index 6555f9a20..306270a27 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt @@ -30,6 +30,7 @@ import io.legado.app.ui.book.read.page.entities.PageDirection import io.legado.app.ui.book.read.page.entities.TextChapter import io.legado.app.ui.book.read.page.entities.TextPage import io.legado.app.ui.book.read.page.entities.TextPos +import io.legado.app.ui.book.read.page.entities.column.TextColumn import io.legado.app.ui.book.read.page.provider.ChapterProvider import io.legado.app.ui.book.read.page.provider.LayoutProgressListener import io.legado.app.ui.book.read.page.provider.TextPageFactory @@ -357,7 +358,7 @@ class ReadView(context: Context, attrs: AttributeSet) : var ci = 0 for (index in lineStart..lineEnd) { val textLine = page.getLine(index) - for (j in 0 until textLine.charSize) { + for (j in textLine.columns.indices) { if (ci == start) { startPos.lineIndex = index startPos.columnIndex = j @@ -366,7 +367,12 @@ class ReadView(context: Context, attrs: AttributeSet) : endPos.columnIndex = j return@run } - ci++ + val column = textLine.getColumn(j) + if (column is TextColumn) { + ci += column.charData.length + } else { + ci++ + } } } }