MaterialDesign
好久没更新了,最近一直在充电,复习整理了以前的一些资料,业余时间学习做饭,今天切洋葱好辣眼睛~~~
言归正传,谷歌14年就开始发布MaterialDesign(中文可以翻译成原质化设计),并且还在不断更新,可以理解为一种设计的指导,具体包括扁平化,鲜明的形象,有意义的动画效果,更流畅的交互体验,对于交互和UI有一些设计指导的作用,相对于程序开发者来说,主要是有一些官方的自定义控件需要掌握和学习。其中包括CoordinatorLayout,Toolbar,FloatingActionButton等等一系列效果很好看又方便的代码,如果开发者自己实现相似的效果比较麻烦,而且费时,官方已经提供了这些控件和效果,为什么不直接拿来用呢?
使用AndroidStudio新建工程的时候,会经过这个画面:
一般我们会选择一个Empty,值得注意的是该界面有一个ScrollingActivity,这个界面就包含了一些MaterialDesign中的新控件,可以当做DEMO看一看,新建一个效果如图:
打开布局文件,最外层是个CoordinatorLayout,该Layout直接继承ViewGroup,类似于ScrollView,当内容超出一屏幕可以滑动,区别在于CoordinatorLayout的下一层级可以包含多个控件,紧接着放了一个AppBarLayout,包裹着一个CollapsingToolbarLayout,两者配合使用可以实现一个很流畅的折叠效果,主要在于 app:layout_scrollFlags这个属性,注意是app开头的属性,具体包括:
scroll: 所有想滚动出屏幕的view都需要设置
enterAlways:这个flag让任意向下的滚动都会导致该view变为可见
enterAlwaysCollapsed:当控件设置minHeight属性时才可生效当滚动视图到达顶部时才扩大到完整高度
exitUntilCollapsed:当控件滚动退出屏幕后,折叠在顶端
这些属性一般会配合使用
FloatingActionButton在新的版本里面也一直很有存在感,Float是它的主要亮点,简单理解为会浮动的ImageButton, app:layout_anchor属性表示依附于哪个控件, app:layout_anchorGravity表示它的具体位置,一般可以当做标签使用。
Toolbar:可以说在3.0中,ActionBar并不是很好用,因此又有新的控件代替之,Toolbar比ActionBar更加灵活,设置的属性有:
setNavigationIcon:相当于一个小图标
setLogo:logo
setTitle:主标题
setSubtitle:副标题
setOnMenuItemClickListener:设定菜单各按鈕的动作,这点跟以前的ActionBar类似,仍然有一个点击出menu的事件。