FloatingActionButton
悬浮按钮是support库中的按钮因此布局文件如下
<!--增加悬浮按钮-->
<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="@drawable/success"
/>
但是你看上图是不是很模糊的样子,而且貌似有一层阴影的感觉,而且是贴合在主布局中。我们设置它与当前界面有一定的高度。
app:elevation="8dp"
触发点击事件:
//设置FloatingActionButton的点击事件
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"悬浮按钮",Toast.LENGTH_SHORT).show();
}
});
Snackbar
一个可以替代Toast的可交互提示工具
代码如下:
//设置FloatingActionButton的点击事件
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this,"悬浮按钮",Toast.LENGTH_SHORT).show();
Snackbar.make(v,"删除重要数据,请小心操作",Snackbar.LENGTH_SHORT)
.setAction("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"你取消了本次的删除操作",Toast.LENGTH_SHORT).show();
}
})
.show();
}
});
从上面可知道操作和Toast是一样的。
从上图中可看到弹出的提示框将悬浮按钮给挡住了?这该怎么解决?
CoordinatorLayout可以上场了。
CoordinatorLayout
CoordinatorLayout是一个加强版的FrameLayout,CoordinatorLayout可以监听所有子控件的各种事件,从而自动的做出合理的相应。
如上图中的遮挡问题,当使用CoordinatorLayout监听到Snackbar的弹出事件之后,CoordinatorLayout内部自动将FloatingActionButton向上偏移,从而保证按钮不会被遮挡到。
布局文件只需要将FrameLayout该为android.support.design.widget.CoordinatorLayout即可实现。
总结:上述就Android中关于悬浮按钮FloatingActionButton和Snocker,以及CoordinatorLayout布局的一些概念和基本的操作。
都不难,但是至于真没做一些比较炫酷的操作就有待自己的领悟。