第一行代码 阅读笔记(12章)

  • 作者:Mr.Egg
  • 状态:完成
  • 转载请注明

一.十二章

1.什么是MD设计(material design)

Google官方为了解决Android界面统一所提出的设计方案
同时推出了一个Design Support对代表性控件进行封装。

2.Toolbar

这张图是style.xml各颜色属性对应的位置


第一行代码 阅读笔记(12章)_第1张图片
20150511225554_336.jpg

还有一点是关于右上角菜单问题,在menu中的属性showAsAction
always:永远显示是toolbar中
ifRoom:在空间足够下显示
never:永远显示在菜单中(文字形式)

3.DrawerLayout

滑动菜单,首先他是一个布局,他允许在布局中放入两个直接子控件
第一个是主屏幕内容,第二个是滑动菜单所要显示内容
第二个子控件有一点要注意,layout_gravity必须指定,start是可根据语言判断
如何调用DrawerLayout

 ActionBar actionBar = getSupportActionBar();  //获取标题栏
 if(actionBar != null){
      actionBar.setDisplayHomeAsUpEnable();  //开启左上角滑动菜单按钮
      actionBar.setHomeAsUpIndicator(R.drawable.xxx);//设置左上角图标
}

mDrawerLayout.openDrawer(GravityCompat.Start);//开启菜单栏

4.NavigationView

NavigationView是Google为了怕你不会写DrawerLayout所设计出来的.
主要用来填充DrawerLayout的第二个部分.一般推荐高度为180dp,背景色为colorPrimary.
如何把对应布局填充进Navigation


        

上图(摘自PDF太黑了。。。)

第一行代码 阅读笔记(12章)_第2张图片
Paste_Image.png

5.悬浮按钮和可交互提示

FloatingActionButton和Button差不多,主要注意阴影的使用,同时要配上Snackbar使用更佳.
先上代码,这里我懒着打了。。

第一行代码 阅读笔记(12章)_第3张图片
Paste_Image.png

设置过后Snackbar会从底部向上弹出,自带动画效果,用户体验也较好。
最重要的是要注意ToastFloatingActionButton的差别

Toast: 告诉用户发生了什么,用户只能被动接受
FloatingActionButton: 允许在提示中加入一个可交互的按钮,用户能执行一些额外的操作

6.CoordinatorLayout

CoordinatorLayout是一个加强版FrameLayout。同样来自Design Support。
能够监听所以子控件的各种事件
Eg.在点击FloatingActionButton的时候弹出的Snackbar会把FloatingActionButton上移,保证不会被挡住

7.CardView布局

//书上没什么主要内容,我开始瞎BB了.
CardView 卡片视图 顾名思义长得和卡片一样,可以往里面填充内容。

在5.0之后产生,是Google为了Material Design的思想所设计的。主要三点,一个阴影,一个圆角还有一个是与 RecyclerView的搭配使用。

但是要注意,Google说过:信息较多的时候不介意使用,这样会分散用户的注意力。

还有一点,在CardView内只能包含一个子控件
以上,是我个人的总结。

AppbarLayout
内部是一个封装过的垂直LinearLayout,内部做了很多滚动事件的封装。
使用:
把Toolbar放在AppbarLayout里面
然后在RecyclerView中使用app:layout_behavior属性指定布局行为

app:layout_behavior="@string/appbar_scrolling_view_behavior"

当AppBarLayout接受到事件的时候,通过layout_scrollFlags属性实现。

app:layout_scrollFlags="scroll | enterAlways | snap"

scroll: 当RecyclerView向上滚动的时候,一起向上并隐藏
enterAlways : 当RecyclerView向下滚动的时候,一起向下并显示
snap: 根据当前滚动距离,自动选择隐藏还是显示

8.下拉刷新

SwipeRefreshLayout来自于support-v4库,Google官方提供的Material Design类型的控件。
使用:只要将需要下拉刷新的控件(RecyclerView)外面嵌一层SwipeRefreshLayout就可以了。
同时也要将layout_behavior="xxxx"移到SwipeRefreshLayout中。

第一行代码 阅读笔记(12章)_第4张图片
SwipeRefreshLayout

几个常用方法:

setColorSchemeResources() 用于设置下拉刷新进度条颜色
setRefreshing() 用于设置下拉刷新的状态
setOnRefreshListener() 用于设置下拉刷新的监听器

出去玩咯...晚点继续更

你可能感兴趣的:(第一行代码 阅读笔记(12章))