Android AppBarLayout控件

1. AppBarLayout类

AppBarLayout是5.0版本出现的控件,是一种支持响应滚动手势的app bar布局。

AppBarLayout组合的滚动布局(RecyclerViewNestedScrollView等),需要设置

app:layout_behavior = "@string/appbar_scrolling_view_behavior"

配置文件,


    
        
            
        

    

    
        
            
            
        
    

2. layout_scrollFlags配置

AppBarLayout的子视图中配置不同layout_scrollFlags属性,会产生不同的效果。

  • 不设置

    Toolbar在顶部不动,滑动只发生在NestedScrollView内部。
    Android AppBarLayout控件_第1张图片

  • 设置为scroll

    Toolbar随着手势一起滑动。
    Android AppBarLayout控件_第2张图片

  • 设置为enterAlways

    enterAlways必须和scroll一起使用。在向上滑动时和scroll一样,但向下时,Toolbar先进入屏幕。
    Android AppBarLayout控件_第3张图片

  • 设置为enterAlwaysCollapsed

    enterAlwaysCollapsed必须和enterAlways一起使用,且Toolbar设置minHeight。在向上滑动时和scroll一样,但向下时Toolbar先进入,但只显示minHeight高度。
    Android AppBarLayout控件_第4张图片

  • 设置为exitUntilCollapsed

    exitUntilCollapsed必须和scroll一起使用,且Toolbar设置minHeight。滚动效果与scroll类似,只是Toolbar会固定在最上方,但只显示minHeight高度。
    Android AppBarLayout控件_第5张图片

  • 设置为snap

    snap必须和scroll一起使用。向上滑动一小段距离,Toolbar自动滑出屏幕。向下滑动一段距离,Toolbar自动滑进屏幕。
    Android AppBarLayout控件_第6张图片

3. 代码设置

可以通过AppBarLayoutLayoutParams设置滚动效果。

AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
// SCROLL_FLAG_SCROLL
// SCROLL_FLAG_ENTER_ALWAYS
// SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
// SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
// SCROLL_FLAG_SNAP
lp.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_xx);
toolbar.setLayoutParams(lp);

4. 多子视图

AppBarLayout可以设置多个子视图的layout_scrollFlags属性


    
        
    
    

效果如下
Android AppBarLayout控件_第7张图片

相关文章
Android Snackbar控件
Android FloatingActionButton控件
Android Toolbar控件
Android AppBarLayout控件
Android CollapsingToolbarLayout控件
Android CardView控件
Android SlidingPaneLayout和DrawerLayout控件
Android NavigationView控件
Android TabLayout控件

你可能感兴趣的:(Android,Material,Design)