Horis 2 лет назад
Родитель
Сommit
deddfdd32f

+ 1 - 4
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()

+ 22 - 18
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() {

+ 2 - 1
app/src/main/res/layout/activity_main.xml

@@ -16,8 +16,9 @@
     <io.legado.app.lib.theme.view.ThemeBottomNavigationVIew
         android:id="@+id/bottom_navigation_view"
         android:layout_width="match_parent"
-        android:layout_height="50dp"
+        android:layout_height="wrap_content"
         android:background="@color/background"
+        android:minHeight="50dp"
         app:itemActiveIndicatorStyle="@color/transparent"
         app:labelVisibilityMode="unlabeled"
         app:menu="@menu/main_bnv" />