From afdfd58a13ff4e9f01cbe0fed8bac71247f79d8c Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Tue, 23 Nov 2021 00:24:49 +0800 Subject: [PATCH] [app] Don't let CollapsingToolbarLayout consume insets (#1430) --- .../org/lsposed/manager/ui/fragment/RepoFragment.java | 11 +++++++++++ app/src/main/res/layout/fragment_repo.xml | 8 +++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java index 29cfa637..b48a23e5 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoFragment.java @@ -112,6 +112,17 @@ public class RepoFragment extends BaseFragment implements RepoLoader.Listener { RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true); binding.progress.setVisibilityAfterHide(View.GONE); repoLoader.addListener(this); + + /* + CollapsingToolbarLayout consumes window insets, causing child views not + receiving window insets. + See https://github.com/material-components/material-components-android/issues/1310 + + Insets can be handled by RikkaX Insets, so we can manually set + OnApplyWindowInsetsListener to null. + */ + + binding.collapsingToolbarLayout.setOnApplyWindowInsetsListener(null); return binding.getRoot(); } diff --git a/app/src/main/res/layout/fragment_repo.xml b/app/src/main/res/layout/fragment_repo.xml index 5d6f7b8d..84c8ee4f 100644 --- a/app/src/main/res/layout/fragment_repo.xml +++ b/app/src/main/res/layout/fragment_repo.xml @@ -31,9 +31,11 @@ android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:fitsSystemWindows="true"> + android:fitsSystemWindows="false" + app:fitsSystemWindowsInsets="top"> @@ -69,9 +71,9 @@ android:fadeScrollbars="true" android:scrollbarStyle="insideOverlay" android:scrollbars="vertical" - app:borderTopVisibility="whenTop" - app:borderTopDrawable="@null" app:borderBottomVisibility="never" + app:borderTopDrawable="@null" + app:borderTopVisibility="whenTop" app:fitsSystemWindowsInsets="bottom" />