Fix the header can't be scrolling problem in landscape mode

- Settings header is restricted scrolling by this ag/15029686
- To void some pages can't show the contain part while heading unscrolling.
  We allow the header can be scrolling in the landscape mode.

Fixes: 207353353
Test: make RunSettingsRoboTests -j
Change-Id: I7de4e7cb8d86516ec039f5fe7d033097dca1c9d8
This commit is contained in:
Sunny Shao
2022-08-11 15:31:20 +08:00
parent e61d7fbd91
commit 71ae129696
2 changed files with 12 additions and 6 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settingslib.collapsingtoolbar;
import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL_FAST;
import android.app.ActionBar;
import android.content.res.Configuration;
import android.graphics.text.LineBreakConfig;
import android.os.Build;
import android.view.LayoutInflater;
@@ -97,7 +98,7 @@ public class CollapsingToolbarDelegate {
.build()));
}
}
disableCollapsingToolbarLayoutScrollingBehavior();
autoSetCollapsingToolbarLayoutScrolling();
mToolbar = view.findViewById(R.id.action_bar);
mContentFrameLayout = view.findViewById(R.id.content_frame);
final ActionBar actionBar = mHostCallback.setActionBar(mToolbar);
@@ -148,7 +149,7 @@ public class CollapsingToolbarDelegate {
return mAppBarLayout;
}
private void disableCollapsingToolbarLayoutScrollingBehavior() {
private void autoSetCollapsingToolbarLayoutScrolling() {
if (mAppBarLayout == null) {
return;
}
@@ -159,7 +160,9 @@ public class CollapsingToolbarDelegate {
new AppBarLayout.Behavior.DragCallback() {
@Override
public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
return false;
// Header can be scrolling while device in landscape mode.
return appBarLayout.getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
}
});
params.setBehavior(behavior);

View File

@@ -21,6 +21,7 @@ import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL_FAST;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.text.LineBreakConfig;
import android.os.Build;
@@ -122,7 +123,7 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout {
mCollapsingToolbarLayout.setTitle(mToolbarTitle);
}
}
disableCollapsingToolbarLayoutScrollingBehavior();
autoSetCollapsingToolbarLayoutScrolling();
}
/**
@@ -243,7 +244,7 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout {
mCollapsingToolbarLayout.findViewById(R.id.support_action_bar);
}
private void disableCollapsingToolbarLayoutScrollingBehavior() {
private void autoSetCollapsingToolbarLayoutScrolling() {
if (mAppBarLayout == null) {
return;
}
@@ -254,7 +255,9 @@ public class CollapsingCoordinatorLayout extends CoordinatorLayout {
new AppBarLayout.Behavior.DragCallback() {
@Override
public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
return false;
// Header can be scrolling while device in landscape mode.
return appBarLayout.getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
}
});
params.setBehavior(behavior);