Android SnackBar

来源:互联网 发布:大雄的生化危机 知乎 编辑:程序博客网 时间:2024/04/30 10:24



展示的效果就这样简单就看你是有那个需求了。SnackBar的创建过程使用了Builder设计模式,有不同需求的可以更具需求结合代码创建出需要的效果。

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. public class MainActivity extends Activity {  
  2.     private SnackBar mSnackBar;  
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.         mSnackBar = new SnackBar.Builder(this)  
  8.         .withMessage("提示信息")  
  9.         .withDuration(SnackBar.LONG_SNACK)  
  10.         .show();  
  11.     }  
  12.   
  13. }  

下载demo



分享个退出提示工具类DoubleClickExitHelper.java

package miuyongjun.twentysix.utils;import android.app.Activity;import android.os.Handler;import android.os.Looper;import android.support.design.widget.Snackbar;import android.view.KeyEvent;import android.view.View;/** * 双击退出工具类 * * @author wxc */public class DoubleClickExitHelper {    private final Activity mActivity;    private boolean isOnKeyBacking;    private Handler mHandler;    private Snackbar snackbar;    public DoubleClickExitHelper(Activity activity) {        mActivity = activity;        mHandler = new Handler(Looper.getMainLooper());        AppManager.getAppManager().addActivity(mActivity);    }    /**     * Activity onKeyDown事件     */    public boolean onKeyDown(int keyCode, View view) {        if (keyCode != KeyEvent.KEYCODE_BACK) {            return false;        }        if (isOnKeyBacking) {            mHandler.removeCallbacks(onBackTimeRunnable);            if (snackbar != null) {                snackbar.dismiss();            }            AppManager.getAppManager().AppExit(mActivity);            return true;        } else {            isOnKeyBacking = true;            if (snackbar == null) {                snackbar = Snackbar.make(view, "再次点击退出应用", 2000);            }            snackbar.show();            mHandler.postDelayed(onBackTimeRunnable, 2000);            return true;        }    }    private Runnable onBackTimeRunnable = new Runnable() {        @Override        public void run() {            isOnKeyBacking = false;            if (snackbar != null) {                snackbar.dismiss();            }        }    };}



在MainActivity中,使用:

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    boolean flag = true;    if (keyCode == KeyEvent.KEYCODE_BACK) {        return mDoubleClickExitHelper.onKeyDown(keyCode, navigationView);    }    return flag;}


5 1