Просмотр исходного кода

Fix missing navigation bar padding in page view

Horis 1 год назад
Родитель
Сommit
8f79e13ba1

+ 12 - 1
app/src/main/java/io/legado/app/base/BaseActivity.kt

@@ -25,7 +25,18 @@ import io.legado.app.lib.theme.ThemeStore
 import io.legado.app.lib.theme.backgroundColor
 import io.legado.app.lib.theme.primaryColor
 import io.legado.app.ui.widget.TitleBar
-import io.legado.app.utils.*
+import io.legado.app.utils.ColorUtils
+import io.legado.app.utils.applyBackgroundTint
+import io.legado.app.utils.applyOpenTint
+import io.legado.app.utils.applyTint
+import io.legado.app.utils.disableAutoFill
+import io.legado.app.utils.fullScreen
+import io.legado.app.utils.hideSoftInput
+import io.legado.app.utils.setLightStatusBar
+import io.legado.app.utils.setNavigationBarColorAuto
+import io.legado.app.utils.setStatusBarColorAuto
+import io.legado.app.utils.toastOnUi
+import io.legado.app.utils.windowSize
 
 
 abstract class BaseActivity<VB : ViewBinding>(

+ 0 - 1
app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt

@@ -128,7 +128,6 @@ import io.legado.app.utils.visible
 import kotlinx.coroutines.Dispatchers.IO
 import kotlinx.coroutines.Dispatchers.Main
 import kotlinx.coroutines.Job
-import kotlinx.coroutines.Runnable
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.ensureActive
 import kotlinx.coroutines.launch

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt

@@ -117,7 +117,7 @@ class MoreConfigDialog : BasePrefDialogFragment() {
 
                 PreferKey.hideNavigationBar -> {
                     ReadBookConfig.hideNavigationBar = getPrefBoolean(PreferKey.hideNavigationBar)
-                    postEvent(EventBus.UP_CONFIG, arrayListOf(0))
+                    postEvent(EventBus.UP_CONFIG, arrayListOf(0, 2))
                 }
 
                 PreferKey.keepLight -> postEvent(key, true)

+ 7 - 0
app/src/main/java/io/legado/app/ui/book/read/page/PageView.kt

@@ -21,6 +21,7 @@ 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.widget.BatteryView
 import io.legado.app.utils.activity
+import io.legado.app.utils.applyNavigationBarPadding
 import io.legado.app.utils.applyStatusBarPadding
 import io.legado.app.utils.dpToPx
 import io.legado.app.utils.gone
@@ -61,6 +62,7 @@ class PageView(context: Context) : FrameLayout(context) {
         if (!isInEditMode) {
             upStyle()
             binding.vwStatusBar.applyStatusBarPadding()
+            binding.vwNavigationBar.applyNavigationBarPadding()
         }
     }
 
@@ -92,6 +94,7 @@ class PageView(context: Context) : FrameLayout(context) {
             vwTopDivider.backgroundColor = tipDividerColor
             vwBottomDivider.backgroundColor = tipDividerColor
             upStatusBar()
+            upNavigationBar()
             llHeader.setPadding(
                 it.headerPaddingLeft.dpToPx(),
                 it.headerPaddingTop.dpToPx(),
@@ -119,6 +122,10 @@ class PageView(context: Context) : FrameLayout(context) {
         isGone = ReadBookConfig.hideStatusBar || readBookActivity?.isInMultiWindow == true
     }
 
+    fun upNavigationBar() {
+        binding.vwNavigationBar.isGone = ReadBookConfig.hideNavigationBar
+    }
+
     /**
      * 更新阅读信息
      */

+ 7 - 1
app/src/main/res/layout/view_book_page.xml

@@ -96,7 +96,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:gravity="center_vertical"
-        app:layout_constraintBottom_toBottomOf="parent">
+        app:layout_constraintBottom_toTopOf="@id/vw_navigation_bar">
 
         <io.legado.app.ui.widget.BatteryView
             android:id="@+id/tv_footer_left"
@@ -139,4 +139,10 @@
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 
+    <FrameLayout
+        android:id="@+id/vw_navigation_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent" />
+
 </androidx.constraintlayout.widget.ConstraintLayout>