fix:阅读界面切换深浅色后,排版问题 (#1576)

This commit is contained in:
fansan
2026-06-29 02:26:30 +08:00
committed by GitHub
parent 4f25e6d73b
commit f4bb4a37bc
2 changed files with 19 additions and 2 deletions
@@ -36,6 +36,8 @@ import kotlin.reflect.KProperty
@Suppress("ConstPropertyName")
@Keep
object ReadBookConfig {
var lastNavigationBarHeight: Int = 0
private val readStyleRepository: ReadStyleRepository
get() = GlobalContext.get().get()
@@ -26,13 +26,14 @@ import io.legado.app.ui.book.read.page.entities.TextPos
import io.legado.app.ui.book.read.page.provider.ChapterProvider
import io.legado.app.ui.config.readConfig.ReadConfig
import io.legado.app.ui.widget.BatteryView
import androidx.core.view.updateLayoutParams
import io.legado.app.utils.activity
import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.applyStatusBarPadding
import io.legado.app.utils.canvasrecorder.CanvasRecorder
import io.legado.app.utils.dpToPx
import io.legado.app.utils.gone
import io.legado.app.utils.isContentScheme
import io.legado.app.utils.navigationBarHeight
import io.legado.app.utils.setOnApplyWindowInsetsListenerCompat
import io.legado.app.utils.statusBarHeight
import splitties.views.backgroundColor
@@ -87,7 +88,21 @@ class PageView(
callBack?.let { binding.contentTextView.setCallBack(it) }
upStyle()
binding.vwStatusBar.applyStatusBarPadding()
binding.vwNavigationBar.applyNavigationBarPadding()
if (ReadBookConfig.lastNavigationBarHeight > 0) {
binding.vwNavigationBar.updateLayoutParams {
height = ReadBookConfig.lastNavigationBarHeight
}
}
binding.vwNavigationBar.setOnApplyWindowInsetsListenerCompat { v, windowInsets ->
val navHeight = windowInsets.navigationBarHeight
if (navHeight > 0) {
ReadBookConfig.lastNavigationBarHeight = navHeight
}
v.updateLayoutParams {
height = navHeight
}
windowInsets
}
}
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {