首先准备一张图片保存在 drawable 下
在 activity_main.xml 下
- <?xml version="1.0" encoding="utf-8"?>
- <Android.support.v4.widget.DrawerLayout
- xmlns:Android="http://schemas.android.com/apk/res/android"
- xmlns:App="http://schemas.android.com/apk/res-auto"
- Android:id="@+id/draw_lay"
- Android:layout_width="match_parent"
- Android:layout_height="match_parent">
- <FrameLayout
- Android:layout_width="match_parent"
- Android:layout_height="match_parent"
- >
- <Android.support.v7.widget.Toolbar
- Android:id="@+id/toolBar"
- Android:layout_width="match_parent"
- Android:layout_height="?attr/actionBarSize"
- Android:background="?attr/colorPrimary"
- Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- App:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- />
- <!-- 下面是悬浮按钮 -->
- <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/done"
- App:elevation="8dp"/><!-- 设置高度值 -->
- </FrameLayout>
- <Android.support.design.widget.NavigationView
- Android:id="@+id/nav_view"
- Android:layout_width="match_parent"
- Android:layout_height="match_parent"
- Android:layout_gravity="start"
- App:menu="@menu/navmenu"
- App:headerLayout="@layout/navhead"/>
- </Android.support.v4.widget.DrawerLayout>
在 MainActivity 中添加响应事件
在下面代码中使用了 SnackBar, 这个控件可以弹出一个可与用户交互的消息, 创建 SnackBar 三个参数分别是: view, 内容, 时长
- FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Snackbar.make(v,"你点击了悬浮按钮",Snackbar.LENGTH_SHORT).setAction("Undo",new View.OnClickListener(){
- @Override
- public void onClick(View v){
- Toast.makeText(MainActivity.this,"你点击了悬浮按钮中的 Undo 按钮",Toast.LENGTH_SHORT).show();
- }
- }).show();
在这种情况下 SnackBar 弹出的内容就会自动挡住悬浮按钮, 此时我们将 xml 布局中的 FrameLayout 改为 < Android.support.design.widget.CoordinatorLayout
这是 Material Design 中提供一种布局在平常情况下与 FrameLayout 差异不大, 但是他可以监控所有子控件的事件, 然后为我们做出合理的相应
来源: http://www.bubuko.com/infodetail-3005251.html