Fixed core UI elements not behaving properly after recreating
This commit is contained in:
parent
6379108a75
commit
8a86b30fd1
@ -85,6 +85,10 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
|
|||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
onTabTransaction(null, -1)
|
onTabTransaction(null, -1)
|
||||||
onFragmentTransaction(null, FragNavController.TransactionType.PUSH)
|
onFragmentTransaction(null, FragNavController.TransactionType.PUSH)
|
||||||
|
|
||||||
|
if (!navigation.isRoot) {
|
||||||
|
requestNavigationHidden(animate = false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,6 +122,11 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
|
|||||||
fragment: Fragment?,
|
fragment: Fragment?,
|
||||||
transactionType: FragNavController.TransactionType
|
transactionType: FragNavController.TransactionType
|
||||||
) {
|
) {
|
||||||
|
binding.mainToolbarWrapper.animate()
|
||||||
|
.translationY(0f)
|
||||||
|
.setInterpolator(FastOutSlowInInterpolator())
|
||||||
|
.start()
|
||||||
|
|
||||||
setDisplayHomeAsUpEnabled(!navigation.isRoot)
|
setDisplayHomeAsUpEnabled(!navigation.isRoot)
|
||||||
requestNavigationHidden(!navigation.isRoot)
|
requestNavigationHidden(!navigation.isRoot)
|
||||||
}
|
}
|
||||||
@ -134,13 +143,19 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun requestNavigationHidden(hide: Boolean = true) {
|
internal fun requestNavigationHidden(hide: Boolean = true, animate: Boolean = true) {
|
||||||
val lapam = binding.mainBottomBar.layoutParams as ViewGroup.MarginLayoutParams
|
val lapam = binding.mainBottomBar.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
val height = binding.mainBottomBar.measuredHeight
|
val height = binding.mainBottomBar.measuredHeight
|
||||||
val verticalMargin = lapam.let { it.topMargin + it.bottomMargin }
|
val verticalMargin = lapam.let { it.topMargin + it.bottomMargin }
|
||||||
val maxTranslation = height + verticalMargin
|
val maxTranslation = height + verticalMargin
|
||||||
val translation = if (!hide) 0 else maxTranslation
|
val translation = if (!hide) 0 else maxTranslation
|
||||||
|
|
||||||
|
if (!animate) {
|
||||||
|
binding.mainBottomBar.translationY = translation.toFloat()
|
||||||
|
binding.mainBottomBar.isVisible = !hide
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
binding.mainBottomBar.animate()
|
binding.mainBottomBar.animate()
|
||||||
.translationY(translation.toFloat())
|
.translationY(translation.toFloat())
|
||||||
.setInterpolator(FastOutSlowInInterpolator())
|
.setInterpolator(FastOutSlowInInterpolator())
|
||||||
|
Loading…
Reference in New Issue
Block a user