Skip to content

Commit

Permalink
[Catalog] Fix flickering AppBarLayout in Navigation Rail demo
Browse files Browse the repository at this point in the history
Resolves #3925

PiperOrigin-RevId: 591264750
  • Loading branch information
dsn5ft authored and raajkumars committed Dec 15, 2023
1 parent 0748414 commit c695802
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
13 changes: 13 additions & 0 deletions catalog/java/io/material/catalog/feature/DemoFragment.java
Expand Up @@ -31,10 +31,12 @@
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.IdRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.AppBarLayout.ScrollingViewBehavior;
import dagger.android.AndroidInjector;
import dagger.android.DispatchingAndroidInjector;
Expand Down Expand Up @@ -94,6 +96,12 @@ public View onCreateView(
((CoordinatorLayout.LayoutParams) demoView.getLayoutParams())
.setBehavior(new ScrollingViewBehavior());

int liftOnScrollTargetViewId = getLiftOnScrollTargetViewId();
if (liftOnScrollTargetViewId != View.NO_ID) {
AppBarLayout appBarLayout = view.findViewById(R.id.cat_demo_fragment_appbar);
appBarLayout.setLiftOnScrollTargetViewId(liftOnScrollTargetViewId);
}

ViewGroup children = (ViewGroup) demoContainer.getChildAt(0);
DemoUtils.addBottomSpaceInsetsIfNeeded(children, demoContainer);
return view;
Expand All @@ -113,6 +121,11 @@ public boolean shouldShowDefaultDemoActionBar() {
return true;
}

@IdRes
public int getLiftOnScrollTargetViewId() {
return View.NO_ID;
}

@Override
public AndroidInjector<Object> androidInjector() {
return childFragmentInjector;
Expand Down
Expand Up @@ -55,6 +55,11 @@ protected int getNavigationRailDemoControlsLayout() {
return R.layout.cat_navigation_demo_controls;
}

@Override
public int getLiftOnScrollTargetViewId() {
return R.id.cat_navigation_rail_nested_scroll_view;
}

private void initAddRemoveHeaderViewButtons(View view) {
final Button addHeaderViewButton = view.findViewById(R.id.add_header_view_button);
final Button removeHeaderViewButton = view.findViewById(R.id.remove_header_view_button);
Expand Down
Expand Up @@ -30,6 +30,7 @@
android:fitsSystemWindows="false"/>

<androidx.core.widget.NestedScrollView
android:id="@+id/cat_navigation_rail_nested_scroll_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
Expand Down

0 comments on commit c695802

Please sign in to comment.