From 3c1c16a853581c36df40d5bff528076dd081c36c Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Thu, 5 Jun 2025 17:59:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../read/page/provider/ChapterProvider.kt | 53 ++++++++++++------- 1 file changed, 33 insertions(+), 20 deletions(-) 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() + ) + } }