ToolBar上添加了 app:layout_scrollFlags这个属性,给这个属性添加不同的值,效果是完全不同的,下面来讲解下各个值的效果:
- 先说当app:layout_scrollFlags=“scroll”,此时TollBar会随着手指的滑动滚出屏幕,或者滚进屏幕,此时TollBar和下面的滑动控件(比如NestedScrollView,RecycleView)是融为一体的,
- 当app:layout_scrollFlags=“scroll|enterAlways”,此时向上滚动时和单纯的scroll属性是没有任何区别的,主要是向下滑动时,ToolBar总是先进入屏幕,(正应验了enterAlways这个属性,总是进入),当ToolBar完全进入屏幕之后,再接着才是NestedScrollView才进入
- enterAlwaysCollapsed 这里涉及到Child View(这里的子view的指的是ToolBar)的高度和最小高度。enterAlwaysCollapsed一般是配合enterAlways一起使用的,同时一定要给Toolbar设置最小高度(minheight),不过Toolbar默认最小高度就是ActionBar的高度…
- exitUntilCollapsed:这个跟上面的enterAlwaysCollapsed相反;它也涉及到minHeight,当发生向上滚动事件时,AppLayout向上滚动,直到我们设置的minHeight,然后我们的滑动View才开始滚动。就算我们滑动的view完全上滑完毕,我们的AppBarLayout也会一直保留我们设置的民Height显示在屏幕的上方
- snap 与scroll一起使用时,我们只需要滑动一小段距离,AppBarLayout就会随着我们滑动的View向上滑出屏幕。AppBarLayout会跟随着我们滑动View的滑动,当AppBarLayout滑出屏幕的部分大于显示区域,我们松开手指,AppBarLayout就会自动滑出屏幕;当AppBarLayout滑出屏幕的部分小于显示区域,我们松开手指,AppBarLayout就会自动滑进屏幕。