您的位置:首页 > 移动开发 > Android开发

Android MaterialDesign(一)

2016-08-05 20:55 246 查看

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的事件。

  NestedScrollView一般用于包裹listview,要使用 app:layout_behavior属性,因此需要CoordinatorLayout配合使用。

  TabLayout,这是个好东西,viewpager经常需要配合TabPageIndicator使用来达到滑动标签的效果,但是这个组合很麻烦,使用TabLayout代替就会方便很多,当然了还是需要FragmentPagerAdapter 配合使用,只不过是用TabLayout代替了TabPageIndicator的位置,代码相对简洁了一些。

  NavigationView就是android抽屉效果实现的关键控件之一,类似于我们以前使用的第三方slidemenu,google已经提供了一个抽屉控件Drawer,新建Activity时就在ScrollingActivity左边可以看到一个DrawerActivity:



  NavigationView需要和DrawerLayout配合使用,DrawerLayout展示的是默认看到的内容,NavigationView是它的子控件,用于展示抽屉里隐藏的内容,实现OnNavigationItemSelectedListener并重写onNavigationItemSelected用于控制item的点击事件,DrawerLayout设置一个ActionBarDrawerToggle用于控制收缩,用起来不是很复杂。

  今天先介绍到这里,该去洗碗了,下一篇继续介绍~~~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android