Prevent CollapsingToolbarLayout collapse if not needed

前端 未结 6 1921
情歌与酒
情歌与酒 2020-12-05 02:30

Using:

compile \'com.android.support:design:23.0.0\'
compile \'com.android.support:appcompat-v7:23.0.0\'
compile \'com.android.support:cardview-v7:23.0.0\'
c         


        
6条回答
  •  [愿得一人]
    2020-12-05 03:04

    You can use below code for this:

       public static void stopScroll() {
        AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsing_toolbar.getLayoutParams();
        toolbarLayoutParams.setScrollFlags(0);
        collapsing_toolbar.setLayoutParams(toolbarLayoutParams);
    
        CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appbar.getLayoutParams();
        appBarLayoutParams.setBehavior(null);
        appbar.setLayoutParams(appBarLayoutParams);
    }
    
    public static void startScroll() {
        AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) collapsing_toolbar.getLayoutParams();
        toolbarLayoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
        collapsing_toolbar.setLayoutParams(toolbarLayoutParams);
    
        CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appbar.getLayoutParams();
        appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());
        appbar.setLayoutParams(appBarLayoutParams);
    }
    

提交回复
热议问题