From 3f8f0a4356fe2da42ceecfdf5be4676dd2280e41 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Mon, 21 Jun 2021 17:26:14 +0800 Subject: [PATCH] Dissable scrolling behavior for collapsing toolbar We intended to make subsetting pages disable the scrolling behavior within the collapsing toolbar area. The collapsing toolbar is still able to be expanded/collapsed depending on the content of page. Fix: 191614437 Fix: 189003332 Test: manual test Cannot scroll/drag with the collapsing toolbar area Change-Id: I6755268781b8b3d1a76bf71f9e39e6de4eeb76e3 --- .../settings/core/SettingsBaseActivity.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java index 47993cfbd5a..aceb3d7278f 100644 --- a/src/com/android/settings/core/SettingsBaseActivity.java +++ b/src/com/android/settings/core/SettingsBaseActivity.java @@ -35,6 +35,7 @@ import android.widget.Toolbar; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.fragment.app.FragmentActivity; import com.android.settings.R; @@ -45,6 +46,7 @@ import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin; import com.android.settingslib.transition.SettingsTransitionHelper; import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType; +import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.resources.TextAppearanceConfig; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -64,6 +66,7 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa protected CategoryMixin mCategoryMixin; protected CollapsingToolbarLayout mCollapsingToolbarLayout; + protected AppBarLayout mAppBarLayout; private Toolbar mToolbar; @Override @@ -108,6 +111,8 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa if (isToolbarEnabled() && !isAnySetupWizard) { super.setContentView(R.layout.collapsing_toolbar_base_layout); mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar); + mAppBarLayout = findViewById(R.id.app_bar); + disableCollapsingToolbarLayoutScrollingBehavior(); } else { super.setContentView(R.layout.settings_base_layout); } @@ -274,6 +279,20 @@ public class SettingsBaseActivity extends FragmentActivity implements CategoryHa return false; } + private void disableCollapsingToolbarLayoutScrollingBehavior() { + final CoordinatorLayout.LayoutParams params = + (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams(); + final AppBarLayout.Behavior behavior = new AppBarLayout.Behavior(); + behavior.setDragCallback( + new AppBarLayout.Behavior.DragCallback() { + @Override + public boolean canDrag(@NonNull AppBarLayout appBarLayout) { + return false; + } + }); + params.setBehavior(behavior); + } + private int getTransitionType(Intent intent) { return intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE, SettingsTransitionHelper.TransitionType.TRANSITION_SHARED_AXIS);