Fix main navigation bar behavior

This commit is contained in:
Koitharu
2024-05-11 18:05:29 +03:00
parent 18dd205051
commit b246575486
2 changed files with 8 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ import android.view.ViewPropertyAnimator
import androidx.annotation.AttrRes
import androidx.annotation.StyleRes
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.isVisible
import androidx.customview.view.AbsSavedState
import androidx.interpolator.view.animation.FastOutLinearInInterpolator
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
@@ -47,6 +48,9 @@ class SlidingBottomNavigationView @JvmOverloads constructor(
}
}
val isShownOrShowing: Boolean
get() = isVisible && currentState == STATE_UP
override fun getBehavior(): CoordinatorLayout.Behavior<*> {
return behavior
}

View File

@@ -281,6 +281,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
adjustFabVisibility()
bottomNav?.hide()
viewBinding.toolbarCard.isInvisible = true
updateContainerBottomMargin()
}
override fun onSupportActionModeFinished(mode: ActionMode) {
@@ -288,6 +289,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
adjustFabVisibility()
bottomNav?.show()
viewBinding.toolbarCard.isInvisible = false
updateContainerBottomMargin()
}
private fun onOpenReader(manga: Manga) {
@@ -403,6 +405,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
)
bottomNav?.showOrHide(!isOpened)
closeSearchCallback.isEnabled = isOpened
updateContainerBottomMargin()
}
private fun requestNotificationsPermission() {
@@ -439,7 +442,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
private fun updateContainerBottomMargin() {
val bottomNavBar = viewBinding.bottomNav ?: return
val newMargin = if (bottomNavBar.isPinned) bottomNavBar.height else 0
val newMargin = if (bottomNavBar.isPinned && bottomNavBar.isShownOrShowing) bottomNavBar.height else 0
with(viewBinding.container) {
val params = layoutParams as MarginLayoutParams
if (params.bottomMargin != newMargin) {