Skip to content

Commit c695802

Browse files
dsn5ftraajkumars
authored andcommitted
[Catalog] Fix flickering AppBarLayout in Navigation Rail demo
Resolves #3925 PiperOrigin-RevId: 591264750
1 parent 0748414 commit c695802

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

catalog/java/io/material/catalog/feature/DemoFragment.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@
3131
import android.view.MenuItem;
3232
import android.view.View;
3333
import android.view.ViewGroup;
34+
import androidx.annotation.IdRes;
3435
import androidx.annotation.Nullable;
3536
import androidx.annotation.StringRes;
3637
import androidx.coordinatorlayout.widget.CoordinatorLayout;
3738
import androidx.core.view.ViewCompat;
39+
import com.google.android.material.appbar.AppBarLayout;
3840
import com.google.android.material.appbar.AppBarLayout.ScrollingViewBehavior;
3941
import dagger.android.AndroidInjector;
4042
import dagger.android.DispatchingAndroidInjector;
@@ -94,6 +96,12 @@ public View onCreateView(
9496
((CoordinatorLayout.LayoutParams) demoView.getLayoutParams())
9597
.setBehavior(new ScrollingViewBehavior());
9698

99+
int liftOnScrollTargetViewId = getLiftOnScrollTargetViewId();
100+
if (liftOnScrollTargetViewId != View.NO_ID) {
101+
AppBarLayout appBarLayout = view.findViewById(R.id.cat_demo_fragment_appbar);
102+
appBarLayout.setLiftOnScrollTargetViewId(liftOnScrollTargetViewId);
103+
}
104+
97105
ViewGroup children = (ViewGroup) demoContainer.getChildAt(0);
98106
DemoUtils.addBottomSpaceInsetsIfNeeded(children, demoContainer);
99107
return view;
@@ -113,6 +121,11 @@ public boolean shouldShowDefaultDemoActionBar() {
113121
return true;
114122
}
115123

124+
@IdRes
125+
public int getLiftOnScrollTargetViewId() {
126+
return View.NO_ID;
127+
}
128+
116129
@Override
117130
public AndroidInjector<Object> androidInjector() {
118131
return childFragmentInjector;

catalog/java/io/material/catalog/navigationrail/NavigationRailDemoControlsFragment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ protected int getNavigationRailDemoControlsLayout() {
5555
return R.layout.cat_navigation_demo_controls;
5656
}
5757

58+
@Override
59+
public int getLiftOnScrollTargetViewId() {
60+
return R.id.cat_navigation_rail_nested_scroll_view;
61+
}
62+
5863
private void initAddRemoveHeaderViewButtons(View view) {
5964
final Button addHeaderViewButton = view.findViewById(R.id.add_header_view_button);
6065
final Button removeHeaderViewButton = view.findViewById(R.id.remove_header_view_button);

catalog/java/io/material/catalog/navigationrail/res/layout/cat_navigation_rail_fragment.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
android:fitsSystemWindows="false"/>
3131

3232
<androidx.core.widget.NestedScrollView
33+
android:id="@+id/cat_navigation_rail_nested_scroll_view"
3334
android:layout_width="0dp"
3435
android:layout_height="wrap_content"
3536
android:layout_weight="1"

0 commit comments

Comments
 (0)