CoordinatorLayout 初步使用

介绍

CoordinatorLayout是一个加强版的FrameLayout,这个布局是Design Support库提供,通常情况下和FrameLayout的使用是一样的。

区别是:CoordinatorLayout 可以监听其所有子控件的各种事件,然后自动帮助我们做出最为合理的响应。举个常见的例子,Snackbar 和悬浮按钮FloatingActionButton的自动同步,效果如下:

image.png

使用

只需要两步即可实现!

  • 第一步:在布局中添加FloatingActionButton控件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

...//省略其他控件
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@mipmap/ic_launcher"
android:elevation="10dp"
/>
</android.support.design.widget.CoordinatorLayo
  • 第二步:在调用Snackbar的处添加如下内容
1
2
3
4
5
6
7
8
9
10
11
Snackbar
.make(view, "hehe", Snackbar.LENGTH_SHORT)
.setAction("heheda", new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(CardRecycleViewActivity.this,CollapsingToolbarActivity.class) ;
intent.putExtra("name",mStringList.get(position)) ;
startActivity(intent);
}
})
.show();

解析

  • 第一步就是添加控件,没什么说的
  • 可以看到第二步中的Snackbar.make()方法中传入了一个view,这个view只要是CoordinateLayout的直接子view就行。可以在setAction()方法中处理点击事件(这里是跳转了下一个activity)
  • 第三步…简单使用就是这么简单,没有第三步了。

代码地址

Github

小额支持我写出更好的文章~