安卓MD风格的布局记录

随手记录下最近工作中新接触的东西。

两个月时间赶了3个项目,刚好前段时间突然了解了下CoordinatorLayout这个东西,然后就一头扎进去不可收拾了,从而引出了NestedScrolling机制--->>SwipeRefreshLayout、AppBarLayout、CollapsingToolbarLayout、TabLayout、ViewPager、RecyclerView等一大堆控件。

首先,CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar+TabLayout+ViewPager,典型的界面联调加tab切换页面的布局,标题头滑动悬浮,部分内容滑动消失等。在这3个项目中丧心病狂的几乎每个界面都用了。先上一个简单点的:

安卓MD风格的布局记录_第1张图片
安卓MD风格的布局记录_第2张图片

这个就是简单的CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar+TabLayout+ViewPager布局,CollapsingToolbarLayout指定了layout_scrollFlags为scroll与exitUntilCollapsed,表示CollapsingToolbarLayout布局会随着向上滑动而折叠,这两个属性属于AppBarLayout,另外还有enterAlways、enterAlwaysCollapsed属性,具体解释这里不介绍,百度CoordinatorLayout即可。CollapsingToolbarLayout中又有pin、parallax、none属性,设置pin的即表示CollapsingToolbarLayout滑动时控件不会变化,最终会折叠在屏幕上方,设定parallax与none的控件最终都会滑出屏幕,区别在于前者滑动过程中会有一个折叠效果,后者则是平滑滑动离开界面。上面布局中Toolbar就设置了pin属性,里面则包含了一个标题,即表示向上滑动时轮播图会离开界面,标题最终会停留在屏幕顶部。而下面的TabLayout未设置属性,即表示AppBarLayout滑动时,最终TabLayout也会停留在屏幕上方。TabLayout又与ViewPager联动,


安卓MD风格的布局记录_第3张图片

ViewPager指定了一个behavior属性,内容为系统提供的一个Behavior,设定这个值的主要用处是使CoordinatorLayout能够滑动起来,即CoordinatorLayout能够滑动联调子布局的前提是有一个直接的子View设置了一个Behavior属性。当然还有其他很多的Behavior属性比如FloatButton的Bahavior等,都是用于CoordinatorLayout联调布局的。

从上面的布局可以延伸开来,是不是可以用一个Layout来替换调轮播图的位置,这样就能实现了一大块复杂的布局滑动离开界面,然后Tab栏能一直停留,下面通过List来展示数据。

下一篇文章来记录这个。

你可能感兴趣的:(安卓MD风格的布局记录)