diff --git a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt index 612d0981a..048929fe6 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt @@ -14,7 +14,6 @@ import android.view.WindowManager import android.widget.FrameLayout import androidx.activity.viewModels import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.constant.AppConst.charsets @@ -51,8 +50,6 @@ import io.legado.app.utils.setNavigationBarColorAuto import io.legado.app.utils.showDialogFragment import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.visible -import kotlinx.coroutines.Dispatchers.IO -import kotlinx.coroutines.launch import java.time.LocalDate import java.time.format.DateTimeFormatter @@ -216,7 +213,7 @@ abstract class BaseReadBookActivity : } override fun upNavigationBarColor() { - upNavigationBar() +// upNavigationBar() when { binding.readMenu.isVisible -> super.upNavigationBarColor() bottomDialog > 0 -> super.upNavigationBarColor() diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt index 12b169066..36644c37d 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt @@ -7,7 +7,6 @@ import android.graphics.Color import android.graphics.PorterDuff import android.graphics.drawable.GradientDrawable import android.util.AttributeSet -import android.view.Gravity import android.view.LayoutInflater import android.view.View.OnClickListener import android.view.View.OnLongClickListener @@ -16,6 +15,8 @@ import android.view.animation.Animation import android.widget.FrameLayout import android.widget.SeekBar import androidx.appcompat.widget.PopupMenu +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.isGone import androidx.core.view.isVisible import io.legado.app.R @@ -46,18 +47,13 @@ import io.legado.app.utils.gone import io.legado.app.utils.invisible import io.legado.app.utils.loadAnimation import io.legado.app.utils.modifyBegin -import io.legado.app.utils.navigationBarGravity -import io.legado.app.utils.navigationBarHeight import io.legado.app.utils.openUrl import io.legado.app.utils.putPrefBoolean import io.legado.app.utils.startActivity import io.legado.app.utils.visible import splitties.views.bottomPadding -import splitties.views.leftPadding import splitties.views.onClick import splitties.views.onLongClick -import splitties.views.padding -import splitties.views.rightPadding /** * 阅读界面菜单 @@ -132,20 +128,20 @@ class ReadMenu @JvmOverloads constructor( @SuppressLint("RtlHardcoded") override fun onAnimationEnd(animation: Animation) { - val navigationBarHeight = - if (ReadBookConfig.hideNavigationBar) { - activity?.navigationBarHeight ?: 0 - } else { - 0 - } +// val navigationBarHeight = +// if (ReadBookConfig.hideNavigationBar) { +// activity?.navigationBarHeight ?: 0 +// } else { +// 0 +// } binding.run { vwMenuBg.setOnClickListener { runMenuOut() } - root.padding = 0 - when (activity?.navigationBarGravity) { - Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight - Gravity.LEFT -> root.leftPadding = navigationBarHeight - Gravity.RIGHT -> root.rightPadding = navigationBarHeight - } +// root.padding = 0 +// when (activity?.navigationBarGravity) { +// Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight +// Gravity.LEFT -> root.leftPadding = navigationBarHeight +// Gravity.RIGHT -> root.rightPadding = navigationBarHeight +// } } callBack.upSystemUiVisibility() if (!LocalConfig.readMenuHelpVersionIsLast) { @@ -236,6 +232,14 @@ class ReadMenu @JvmOverloads constructor( titleBarAddition.gone() } upBrightnessVwPos() + /** + * 确保视图不被导航栏遮挡 + */ + ViewCompat.setOnApplyWindowInsetsListener(this@ReadMenu) { _, windowInsets -> + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()) + root.bottomPadding = insets.bottom + windowInsets + } } fun reset() { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 92ac73aee..c73e61483 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -16,8 +16,9 @@