今天給大家?guī)硪黄唵我锥奈⒓记晌恼拢]有什么高深的技術(shù)點,但重點是在細節(jié),相信可以給不少朋友帶來幫助。
Dialog和Toast所有人肯定都不會陌生的,這個我們平時用的實在是太多了。而Snackbar是Design Support庫中提供的新控件,有些朋友可能已經(jīng)用過了,有些朋友可能還沒去了解。但是你真的知道什么時候應該使用Dialog,什么時候應該使用Toast,什么時候應該使用Snackbar嗎?先看效果圖: 


1,Dialog
首先來介紹一下Dialog的用法:
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("title") .setMessage("dialog content") .setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setNegativeButton("cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show();運行在不同版本的手機上顯示的效果會不同,但是既然說到了是小技巧,Google已經(jīng)充分考慮到了這一點,在appcompat-v7庫中也提供了一個AlertDialog類:
import android.support.v7.app.AlertDialog;
2,Toast
先看一下Toast的基本用法:
Toast.makeText(context, "things happened", Toast.LENGTH_SHORT).show();
但是如果我們手打滑,點擊了5次toast會出現(xiàn)五次,因為是被動的,所以不能及時讓其消失;然而我?guī)Ыo大家的小技巧就是用ToastUtils.java來封裝:
package com.gyq.dialog;import android.content.Context;import android.widget.Toast;/** * 將Toast封裝成一個接口,寫在公共的工具類中 * author: gyq * create at 2017/1/11 14:30 */public class ToastUtils { private static Toast toast; public static void showToast(Context context, String content) { if (toast == null) { toast = Toast.makeText(context, content, Toast.LENGTH_SHORT); } else { toast.setText(content); } toast.show(); }}然后使用在其他類中:
ToastUtils.showToast(this,"this is a toast !");
3,Snackbar
首先我們要在app/build.gradle閉包下:
compile 'com.android.support:design:24.2.1'
然后是使用:
Snackbar.make(mSnackbarBtn,"data delete",Snackbar.LENGTH_LONG) .setAction("yes", new View.OnClickListener() { @Override public void onClick(View v) { } }).show();4,小結(jié)
現(xiàn)在你有三種方式可以給用戶提示信息,Dialog、Toast和Snackbar,下面我們對這三種方式的使用時機做個總結(jié):
Dialog:當提示信息是至關(guān)重要的,并且必須要由用戶做出決定才能繼續(xù)的時候,使用Dialog。
Toast:當提示信息只是告知用戶某個事情發(fā)生了,用戶不需要對這個事情做出響應的時候,使用Toast。
Snackbar:以上兩者之外的任何其他場景,Snackbar可能會是你最好的選擇。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答