基础Android之Material Design

来源:互联网 发布:手机淘宝卖家在哪登陆 编辑:程序博客网 时间:2024/06/04 20:23

  现在Android推出了一套全新的界面设计语言——Material Design。我总结一下目前常用的,但不具体的去写,喜欢的可以去搜一下具体的知识,研究一下

  1.ToolBar

     现在官方意见不再建议使用ActionBar,而更加推荐使用Toolbar,它不仅继承了ActionBar的所有功能,而且灵活性更高。实现出来的界面其实跟ActionBar一样。

     

    setSupportActionBar(toolbar);
    这样既使用了Toolbar,又让它的外观与功能和ActionBar一致。

2. 滑动菜单DrawerLayout

      它是一个布局,允许放入两个直接子控件,一个子控件是主屏幕中显示的内容,一个子控件是滑动菜单中显示的内容。第二个子控件必须知道layout_gravity属性,指定left表示滑动菜单在左边,指定right则表示滑动菜单在右边,start表示根据系统语言判断。然后我们试着点击菜单以外的区域,就可以关闭滑动菜单。

      

mDrawerLayout.openDrawer(GravityCompat.START)
3.NavigationView

  这是Design Support提供的另一个控件,使用的时候,需要添加依赖

   

compile 'com.android.support:design:24.2.1'compile 'de.hdodenhof:circleimageview:2.1.0'
第二个依赖是圆形图片,写上以防忘记。

 我们要注意NavigationView需要配置两个属性

app:menu="@menu/nav_menu"app:headerLayout="@layout/nav_header"

app:menu是在Navigation中要显示的具体的菜单选项,app:headerLayout是用来在NavigationView中显示头部布局的。

点击每一项菜单关闭navigationView

mDrawerLayout.closeDrawers();

4. FloatingActionButton

      悬浮按钮,利用layout_gravity属性指定位置值得一提的是app:elevation属性是给FloatingActionButton指定一个高度值,不过默认的一般就可以

5.snakebar

      与Toast相似,但有着不同的应用场景,sankebar他允许在提示中加一个可交互的按钮,当用户点击后执行一些额外的操作

     

Snakebar.make(view,"Data deleted',Snakebar.LENGTH_SHAORT).setAction("Undo",new View.OnClickListener(){   @Override    public void onClick(View v){     //做一些操作,比如toast提示    }})
6.CoodinatorLayout

    是一个加强版的FrameLayout,可以监听其所有子控件的各种事件,然后帮我们做出最为合理的响应,比如弹出的Snakebar会把悬浮按钮挡住,那么如果他们的父布局是CoodinatorLayout,则会让悬浮按钮自动上移而不会被挡住,等Sankebar消失后会自动下移,回到原来的位置。

7. 卡片式布局 CardView

    也是一个FrameLayout

   

app:cardCornerRadius = "4dp"app:elevation="5dp"
cardCornerRadius指定卡片圆角的弧度,数值越大,弧度越大,elevation指定卡片的高度,高度越大,投影范围也越大,投影效果越淡,反之亦然。使用的时候需要添加依赖

compile 'com.android.support:cardview-v7:24.2.1'compile 'com.github.bumptech.glide:glide:3.7.0

下面的glide是一个强大的图片加载库,用法如下

Glide.with(context).load(url).into(imageview);


8.AppBarLayout
    实际上是一个垂直的LinearLayout,内部做了很多的滚动事件的封装,将我们的toolbar控件嵌套在AppBarLayout中,

   

<...toolbar  app:layout_scaollFlags="scroll|enterAlways|snap/>  

      在RecyclerView滚动的时候,就会起作用,enterAlways表示向下滚动toolbar会跟着一起向下滚动显示,scroll表示向上滚动就会一起向上滚动并实现隐藏,snap表示Toolbar还没有完全隐藏或显示的时候,会根据当前滚动的距离,自动选择是隐藏还是显示。

     RecyclerView也要设置一个属性,以便在滚动的时候通知toolbar

    

app:layout_behavior="@string/appbar_scrolling_view_behavior"
这个字符窜是由Design Support提供的。

9 下拉刷新SwipeRefreshLayout

    SwipeRefreshLayout适用于下拉刷新的核心类,我们把要实现下拉属性的控件放置与其中就可以支持下拉刷新了。这个比较简单不多说了

10 CollapsingToolbarLayout可折叠的标题栏

    是一个作用于Toolbar基础之上的布局,可以让Toolbar的效果更加丰富,它不能独立存在,只能作为AppBarLayout的子布局来使用,而AppBarLayout又必须是CoordinatorLayout的子布局。

    

<android.support.design.widget.CollapsingToolbarLayout  ....      app:contentScrim="?attr/colorPrimary"     app:layout_scrolFlags="scroll|apsingToolbarLayout">
     第一个属性contentScrim用于指定CollapsingToolbarLayout在趋于折叠状态以及折叠之后的背景色,下面的那个属性scroll表示会随着下面的内容的滚动一起滚动,apsingToolbarLayout表示当CollapsingToolbarLayout滚动完后就保留在界面上,不再移出屏幕。

       高级版的标题栏将是由普通标题栏加上图片组合而成,里面的子控件需要设置app:layout_collapseMode属性,pin表示折叠过程中位置始终保持不变,parallax表示折叠过程中产生一定的错位偏移。

11.充分利用系统状态栏空间

     我们就需要借助android:fitsSystemWindows这个熟悉了,如果我们想让状态栏变成透明色,在CollapsingToolbarLayout进行折叠的时候图片可以占据状态栏,那么就需要imageview以及他的父控件都加上这个属性,并且设置状态栏为透明,android:statusBarColor="#0000000"但是这个属性只有5.0之后才有,所以我们需要建一个value_v21的文件夹,在其下建一个styles.xm文件,然后去写这样的一个style,在我们通用的styles.xml写一个空的对应name的style.在activity里面去配置app:theme="@style/transparentStyle"就OK了。

         说的比较简单,这些Material Design基本上都在5.0之后添加,所以一定要做好适配。

2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高三坚持不下去怎么办 word点了不保存怎么办 做了ppt没保存怎么办 中班安全教案迷眼了怎么办 美的空调尘满怎么办 高考报名系统密码忘记怎么办 高考理综8题怎么办 高三了语文很差怎么办 高三了语文成绩差怎么办 供太岁初一忘了怎么办 高一英语100多分怎么办 高一孩子英语差怎么办 高考中题目有错别字怎么办 相亲简单自我介绍后不回我怎么办 初中毕业没考上高中怎么办 幼儿园小朋友经常说脏话幼师怎么办 我不想当组长了怎么办 领导让我做组长怎么办 情人抓住把柄敲诈自己老公怎么办 我太看重朋友了怎么办 初中生下面长硬胡子痒怎么办 孩子不爱与人沟通怎么办 初一初二没学好初三怎么办 打印机提示存储已满怎么办 苹果6内存满了怎么办 手机总显示存储空间不足怎么办 我爱她她不爱我怎么办 孩子爱发脾气·父母怎么办 落枕怎么办简单快速的有效方法 老板评奖时偏把我落下怎么办 手机home键坏了怎么办 庙里求的葫芦丢了怎么办 判了抚养费不给怎么办 百度账号密码忘了怎么办 百度云会员到期后文件怎么办 百度网盘存储空间不足怎么办 网赌一天输14万怎么办 在部队训练伤了怎么办 cdrx6激活时不能继续了怎么办 大学毕业一年后找不到工作怎么办 农村乱收垃圾费怎么办