How to set app:layout_scrollFlags for Toolbar programmatically How to set app:layout_scrollFlags for Toolbar programmatically android android

How to set app:layout_scrollFlags for Toolbar programmatically


I'd strongly recommend against changing the scrolling flags based on what tab is selected - having the Toolbar automatically return (and the content move down) when scrolling to a non-recyclerview tab can be very jarring and probably not an interaction pattern you want (exasperated if your two RecyclerView tabs are next to one another).

However, if you want to see it in person, you can use setScrollFlags() to set the scroll flags programmatically:

Toolbar toolbar = ... // your toolbar within an AppBarLayoutAppBarLayout.LayoutParams params =     (AppBarLayout.LayoutParams) toolbar.getLayoutParams();params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL    | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);

In order to clear flags

params.setScrollFlags(0)


// Show toolbar when we are in maps modeAppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) mToolbar.getLayoutParams();CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();if(isMapIndex) {    params.setScrollFlags(0);    appBarLayoutParams.setBehavior(null);    mAppBarLayout.setLayoutParams(appBarLayoutParams);} else {    params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);    appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());    mAppBarLayout.setLayoutParams(appBarLayoutParams);}