This commit is contained in:
Horis
2024-08-26 22:49:50 +08:00
parent 087aefa826
commit deddfdd32f
3 changed files with 25 additions and 23 deletions
@@ -14,7 +14,6 @@ import android.view.WindowManager
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.VMBaseActivity import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.AppConst.charsets 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.showDialogFragment
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import io.legado.app.utils.visible import io.legado.app.utils.visible
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.launch
import java.time.LocalDate import java.time.LocalDate
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@@ -216,7 +213,7 @@ abstract class BaseReadBookActivity :
} }
override fun upNavigationBarColor() { override fun upNavigationBarColor() {
upNavigationBar() // upNavigationBar()
when { when {
binding.readMenu.isVisible -> super.upNavigationBarColor() binding.readMenu.isVisible -> super.upNavigationBarColor()
bottomDialog > 0 -> super.upNavigationBarColor() bottomDialog > 0 -> super.upNavigationBarColor()
@@ -7,7 +7,6 @@ import android.graphics.Color
import android.graphics.PorterDuff import android.graphics.PorterDuff
import android.graphics.drawable.GradientDrawable import android.graphics.drawable.GradientDrawable
import android.util.AttributeSet import android.util.AttributeSet
import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View.OnClickListener import android.view.View.OnClickListener
import android.view.View.OnLongClickListener import android.view.View.OnLongClickListener
@@ -16,6 +15,8 @@ import android.view.animation.Animation
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.SeekBar import android.widget.SeekBar
import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.PopupMenu
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isGone import androidx.core.view.isGone
import androidx.core.view.isVisible import androidx.core.view.isVisible
import io.legado.app.R 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.invisible
import io.legado.app.utils.loadAnimation import io.legado.app.utils.loadAnimation
import io.legado.app.utils.modifyBegin 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.openUrl
import io.legado.app.utils.putPrefBoolean import io.legado.app.utils.putPrefBoolean
import io.legado.app.utils.startActivity import io.legado.app.utils.startActivity
import io.legado.app.utils.visible import io.legado.app.utils.visible
import splitties.views.bottomPadding import splitties.views.bottomPadding
import splitties.views.leftPadding
import splitties.views.onClick import splitties.views.onClick
import splitties.views.onLongClick import splitties.views.onLongClick
import splitties.views.padding
import splitties.views.rightPadding
/** /**
* 阅读界面菜单 * 阅读界面菜单
@@ -132,20 +128,20 @@ class ReadMenu @JvmOverloads constructor(
@SuppressLint("RtlHardcoded") @SuppressLint("RtlHardcoded")
override fun onAnimationEnd(animation: Animation) { override fun onAnimationEnd(animation: Animation) {
val navigationBarHeight = // val navigationBarHeight =
if (ReadBookConfig.hideNavigationBar) { // if (ReadBookConfig.hideNavigationBar) {
activity?.navigationBarHeight ?: 0 // activity?.navigationBarHeight ?: 0
} else { // } else {
0 // 0
} // }
binding.run { binding.run {
vwMenuBg.setOnClickListener { runMenuOut() } vwMenuBg.setOnClickListener { runMenuOut() }
root.padding = 0 // root.padding = 0
when (activity?.navigationBarGravity) { // when (activity?.navigationBarGravity) {
Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight // Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight
Gravity.LEFT -> root.leftPadding = navigationBarHeight // Gravity.LEFT -> root.leftPadding = navigationBarHeight
Gravity.RIGHT -> root.rightPadding = navigationBarHeight // Gravity.RIGHT -> root.rightPadding = navigationBarHeight
} // }
} }
callBack.upSystemUiVisibility() callBack.upSystemUiVisibility()
if (!LocalConfig.readMenuHelpVersionIsLast) { if (!LocalConfig.readMenuHelpVersionIsLast) {
@@ -236,6 +232,14 @@ class ReadMenu @JvmOverloads constructor(
titleBarAddition.gone() titleBarAddition.gone()
} }
upBrightnessVwPos() upBrightnessVwPos()
/**
* 确保视图不被导航栏遮挡
*/
ViewCompat.setOnApplyWindowInsetsListener(this@ReadMenu) { _, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
root.bottomPadding = insets.bottom
windowInsets
}
} }
fun reset() { fun reset() {
+2 -1
View File
@@ -16,8 +16,9 @@
<io.legado.app.lib.theme.view.ThemeBottomNavigationVIew <io.legado.app.lib.theme.view.ThemeBottomNavigationVIew
android:id="@+id/bottom_navigation_view" android:id="@+id/bottom_navigation_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="wrap_content"
android:background="@color/background" android:background="@color/background"
android:minHeight="50dp"
app:itemActiveIndicatorStyle="@color/transparent" app:itemActiveIndicatorStyle="@color/transparent"
app:labelVisibilityMode="unlabeled" app:labelVisibilityMode="unlabeled"
app:menu="@menu/main_bnv" /> app:menu="@menu/main_bnv" />