diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt index ff5fe904e..2d50d1913 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/provider/ChapterProvider.kt @@ -34,6 +34,7 @@ import io.legado.app.utils.postEvent import io.legado.app.utils.spToPx import io.legado.app.utils.splitNotBlank import io.legado.app.utils.textHeight +import io.legado.app.utils.toastOnUi import kotlinx.coroutines.CoroutineScope import splitties.init.appCtx import java.util.LinkedList @@ -1001,28 +1002,40 @@ object ChapterProvider { } } - if (viewWidth > 0 && viewHeight > 0) { - paddingLeft = ReadBookConfig.paddingLeft.dpToPx() - paddingTop = ReadBookConfig.paddingTop.dpToPx() - paddingRight = ReadBookConfig.paddingRight.dpToPx() - paddingBottom = ReadBookConfig.paddingBottom.dpToPx() - visibleWidth = if (doublePage) { - viewWidth / 2 - paddingLeft - paddingRight - } else { - viewWidth - paddingLeft - paddingRight - } - //留1dp画最后一行下划线 - visibleHeight = viewHeight - paddingTop - paddingBottom - visibleRight = viewWidth - paddingRight - visibleBottom = paddingTop + visibleHeight + if (viewWidth <= 0 || viewHeight <= 0) { + return } - visibleRect.set( - paddingLeft.toFloat(), - paddingTop.toFloat(), - visibleRight.toFloat(), - visibleBottom.toFloat() - ) + paddingLeft = ReadBookConfig.paddingLeft.dpToPx() + paddingTop = ReadBookConfig.paddingTop.dpToPx() + paddingRight = ReadBookConfig.paddingRight.dpToPx() + paddingBottom = ReadBookConfig.paddingBottom.dpToPx() + visibleWidth = if (doublePage) { + viewWidth / 2 - paddingLeft - paddingRight + } else { + viewWidth - paddingLeft - paddingRight + } + //留1dp画最后一行下划线 + visibleHeight = viewHeight - paddingTop - paddingBottom + visibleRight = viewWidth - paddingRight + visibleBottom = paddingTop + visibleHeight + + if (paddingLeft >= visibleRight || paddingTop >= visibleBottom) { + appCtx.toastOnUi("边距设置过大,请重新设置") + visibleRect.set( + 0f, + 0f, + viewWidth.toFloat(), + viewHeight.toFloat() + ) + } else { + visibleRect.set( + paddingLeft.toFloat(), + paddingTop.toFloat(), + visibleRight.toFloat(), + visibleBottom.toFloat() + ) + } }