Find suitable anchor view for SnackBar

This will fix the SnackBar position if BottomNav or FAB is visible.

Fix #5163
Fix #5135
This commit is contained in:
RikkaW
2022-01-06 19:30:13 +08:00
committed by John Wu
parent 42804d5314
commit 1df2a04713
7 changed files with 25 additions and 3 deletions
@@ -11,6 +11,7 @@ import android.view.View
import android.view.WindowManager
import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.view.forEach
import androidx.core.view.isVisible
import androidx.interpolator.view.animation.FastOutLinearInInterpolator
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
import androidx.navigation.NavDirections
@@ -36,6 +37,15 @@ class MainActivity : BaseMainActivity<MainViewModel, ActivityMainMd2Binding>() {
override val layoutRes = R.layout.activity_main_md2
override val viewModel by viewModel<MainViewModel>()
override val navHostId: Int = R.id.main_nav_host
override val snackbarAnchorView: View?
get() {
val fragmentAnchor = currentFragment?.snackbarAnchorView
return when {
fragmentAnchor?.isVisible == true -> fragmentAnchor
binding.mainNavigation.isVisible -> return binding.mainNavigation
else -> null
}
}
private var isRootFragment = true