Unverified Commit 2106751e authored by 残页's avatar 残页 Committed by GitHub

Fix SnackBar shows behind window insets

parent 7ae3cd1c
...@@ -20,6 +20,7 @@ abstract class BaseFragment<Binding : ViewDataBinding> : Fragment(), ViewModelHo ...@@ -20,6 +20,7 @@ abstract class BaseFragment<Binding : ViewDataBinding> : Fragment(), ViewModelHo
protected abstract val layoutRes: Int protected abstract val layoutRes: Int
private val navigation get() = activity?.navigation private val navigation get() = activity?.navigation
open val snackbarView: View? get() = null
open val snackbarAnchorView: View? get() = null open val snackbarAnchorView: View? get() = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
......
...@@ -36,6 +36,11 @@ class MainActivity : BaseMainActivity<ActivityMainMd2Binding>() { ...@@ -36,6 +36,11 @@ class MainActivity : BaseMainActivity<ActivityMainMd2Binding>() {
override val layoutRes = R.layout.activity_main_md2 override val layoutRes = R.layout.activity_main_md2
override val viewModel by viewModel<MainViewModel>() override val viewModel by viewModel<MainViewModel>()
override val navHostId: Int = R.id.main_nav_host override val navHostId: Int = R.id.main_nav_host
override val snackbarView: View
get() {
val fragmentOverride = currentFragment?.snackbarView
return fragmentOverride ?: super.snackbarView
}
override val snackbarAnchorView: View? override val snackbarAnchorView: View?
get() { get() {
val fragmentAnchor = currentFragment?.snackbarAnchorView val fragmentAnchor = currentFragment?.snackbarAnchorView
......
...@@ -20,6 +20,9 @@ class LogFragment : BaseFragment<FragmentLogMd2Binding>() { ...@@ -20,6 +20,9 @@ class LogFragment : BaseFragment<FragmentLogMd2Binding>() {
override val layoutRes = R.layout.fragment_log_md2 override val layoutRes = R.layout.fragment_log_md2
override val viewModel by viewModel<LogViewModel>() override val viewModel by viewModel<LogViewModel>()
override val snackbarView: View?
get() = if (isMagiskLogVisible) binding.logFilterSuperuser.snackbarContainer
else super.snackbarView
override val snackbarAnchorView get() = binding.logFilterToggle override val snackbarAnchorView get() = binding.logFilterToggle
private var actionSave: MenuItem? = null private var actionSave: MenuItem? = null
......
...@@ -14,6 +14,7 @@ class SettingsFragment : BaseFragment<FragmentSettingsMd2Binding>() { ...@@ -14,6 +14,7 @@ class SettingsFragment : BaseFragment<FragmentSettingsMd2Binding>() {
override val layoutRes = R.layout.fragment_settings_md2 override val layoutRes = R.layout.fragment_settings_md2
override val viewModel by viewModel<SettingsViewModel>() override val viewModel by viewModel<SettingsViewModel>()
override val snackbarView: View get() = binding.snackbarContainer
override fun onStart() { override fun onStart() {
super.onStart() super.onStart()
......
...@@ -13,20 +13,31 @@ ...@@ -13,20 +13,31 @@
</data> </data>
<androidx.recyclerview.widget.RecyclerView <FrameLayout
app:items="@{viewModel.items}"
app:extraBindings="@{viewModel.extraBindings}"
android:id="@+id/settings_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:focusableInTouchMode="false"
android:clipToPadding="false" <androidx.recyclerview.widget.RecyclerView
android:orientation="vertical" app:items="@{viewModel.items}"
android:paddingTop="@dimen/internal_action_bar_size" app:extraBindings="@{viewModel.extraBindings}"
app:fitsSystemWindowsInsets="top|bottom" android:id="@+id/settings_list"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" android:layout_width="match_parent"
tools:layout_marginTop="24dp" android:layout_height="match_parent"
tools:listitem="@layout/item_settings" android:focusableInTouchMode="false"
tools:paddingTop="@dimen/l1" /> android:clipToPadding="false"
android:orientation="vertical"
android:paddingTop="@dimen/internal_action_bar_size"
app:fitsSystemWindowsInsets="top|bottom"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:layout_marginTop="24dp"
tools:listitem="@layout/item_settings"
tools:paddingTop="@dimen/l1" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/snackbar_container"
app:fitsSystemWindowsInsets="top|bottom"/>
</FrameLayout>
</layout> </layout>
...@@ -43,6 +43,12 @@ ...@@ -43,6 +43,12 @@
</FrameLayout> </FrameLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/snackbar_container"
app:fitsSystemWindowsInsets="top|bottom"/>
</FrameLayout> </FrameLayout>
</layout> </layout>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment