Fix margins for pinned navbar

This commit is contained in:
Koitharu
2024-04-24 10:47:58 +03:00
parent daa545f3db
commit 8fad307c9a
2 changed files with 13 additions and 3 deletions

View File

@@ -16,8 +16,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdk = 21
targetSdk = 34
versionCode = 634
versionName = '7.0-a1'
versionCode = 635
versionName = '7.0-b1'
generatedDensities = []
testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner'
ksp {

View File

@@ -7,6 +7,7 @@ import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import androidx.activity.OnBackPressedCallback
import androidx.activity.viewModels
import androidx.appcompat.view.ActionMode
@@ -44,6 +45,7 @@ import org.koitharu.kotatsu.core.ui.util.MenuInvalidator
import org.koitharu.kotatsu.core.ui.util.OptionsMenuBadgeHelper
import org.koitharu.kotatsu.core.ui.widgets.SlidingBottomNavigationView
import org.koitharu.kotatsu.core.util.ext.hideKeyboard
import org.koitharu.kotatsu.core.util.ext.measureHeight
import org.koitharu.kotatsu.core.util.ext.observe
import org.koitharu.kotatsu.core.util.ext.observeEvent
import org.koitharu.kotatsu.core.util.ext.scaleUpActivityOptionsOf
@@ -402,7 +404,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
}
private fun setNavbarPinned(isPinned: Boolean) {
viewBinding.bottomNav?.isPinned = isPinned
val bottomNavBar = viewBinding.bottomNav
bottomNavBar?.isPinned = isPinned
for (view in viewBinding.appbar.children) {
val lp = view.layoutParams as? AppBarLayout.LayoutParams ?: continue
val scrollFlags = if (isPinned) {
@@ -415,6 +418,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
view.layoutParams = lp
}
}
viewBinding.container.updateLayoutParams<MarginLayoutParams> {
bottomMargin = if (isPinned) {
bottomNavBar?.measureHeight() ?: 0
} else {
0
}
}
}
private inner class CloseSearchCallback : OnBackPressedCallback(false) {