package com.zjw.mymaterialdesign4; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Toast; import butterknife.BindView; import butterknife.ButterKnife; //12.4.1 p424 FloatingActionButton /* Design 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/f" app:elevation="15dp"/> 其中elevation属性给FloatingActionButton指定一个高度值,高度值越大,投影范围越大,越淡 */ //12.4.2 p427 Snackbar /* 是一种提示工具 与Toast区别: Toast:告诉用户现在发生了什么,用户只能被动接受 Snackbar:允许在提示中加入一个可交互按钮 */ //修改主代码 //此时弹出来的SnackBar会把FloatingActionButton遮挡一部分 //12.4.3 p428 CoordinatorLayout /* 类似于加强版FrameLayout 普通情况作用与FrameLayout一致 CoordinatorLayout可以监听所有子控件的各种事件,自动做出做合理的相应 比如SnackBar不再遮挡FloatingActionButton 使用:把FloatingActionButton父布局改为CoordinatorLayout即可 */ public class UseOfFloatingActionButton extends AppCompatActivity { @BindView(R.id.fab) FloatingActionButton mFab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_use_of_floating_action_button); ButterKnife.bind(this); mFab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Toast.makeText(UseOfFloatingActionButton.this, "FAB clicked", Toast.LENGTH_SHORT).show(); Snackbar.make(v, "Data deleted", Snackbar.LENGTH_SHORT).setAction("Undo", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(UseOfFloatingActionButton.this, "Data restored", Toast.LENGTH_SHORT).show(); } }).show(); } }); } }
转载于:https://my.oschina.net/u/3620480/blog/1499591