1 package com.example.kbr.utils; 2 3 import android.view.Gravity; 4 import android.widget.Toast; 5 6 import io.reactivex.Observable; 7 import io.reactivex.android.schedulers.AndroidSchedulers; 8 9 /** 10 * Created by keranbin on 2017/12/19. 11 */ 12 13 public class ToastUtil { 14 private static Toast toast; 15 16 17 /** 18 * 短时间显示Toast【居上】 19 * 20 * @param msg 显示的内容-字符串 21 */ 22 public static void showShortToastTop(String msg) { 23 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 24 Observable.create(emit -> { 25 26 }).observeOn(AndroidSchedulers.mainThread()) 27 .subscribe(re -> { 28 if (toast == null) { 29 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_SHORT); 30 toast.setGravity(Gravity.TOP, 0, 0); 31 } else { 32 toast.setText(msg); 33 } 34 toast.show(); 35 }); 36 } 37 } 38 39 40 /** 41 * 短时间显示Toast【居中】 42 * 43 * @param msg 显示的内容-字符串 44 */ 45 public static void showShortToastCenter(String msg) { 46 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 47 io.reactivex.Observable.create(emit -> { 48 emit.onNext(msg); 49 emit.onComplete(); 50 }).observeOn(AndroidSchedulers.mainThread()) 51 .subscribe(re -> { 52 if (toast == null) { 53 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_SHORT); 54 } else { 55 toast.setText(msg); 56 } 57 // toast.setGravity(Gravity.CENTER,0,0); 默认居中显示 58 toast.show(); 59 }); 60 61 } 62 } 63 64 65 /** 66 * 短时间显示Toast【居下】 67 * 68 * @param msg 69 */ 70 public static void showShortToast(String msg) { 71 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 72 Observable.create(emit -> { 73 emit.onNext(msg); 74 emit.onComplete(); 75 }).observeOn(AndroidSchedulers.mainThread()) 76 .subscribe(re -> { 77 if (toast == null) { 78 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_SHORT); 79 } else { 80 toast.setText(msg); 81 } 82 toast.setGravity(Gravity.BOTTOM, 0, 0); 83 toast.show(); 84 }); 85 86 87 } 88 } 89 90 91 /** 92 * 长时间显示Toast【居上】 93 * 94 * @param msg 显示的内容-字符串 95 */ 96 public static void showLongToastTop(String msg) { 97 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 98 Observable.create(emit -> { 99 emit.onNext(msg); 100 emit.onComplete(); 101 }).observeOn(AndroidSchedulers.mainThread()) 102 .subscribe(re -> { 103 if (toast == null) { 104 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_LONG); 105 } else { 106 toast.setText(msg); 107 } 108 toast.setGravity(Gravity.TOP, 0, 0); 109 toast.show(); 110 }); 111 } 112 113 } 114 115 116 /** 117 * 长时间显示Toast【居中】 118 * 119 * @param msg 显示的内容-字符串 120 */ 121 public static void showLongToastCenter(String msg) { 122 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 123 Observable.create(emit -> { 124 emit.onNext(msg); 125 emit.onComplete(); 126 }).observeOn(AndroidSchedulers.mainThread()) 127 .subscribe(re -> { 128 if (toast == null) { 129 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_LONG); 130 } else { 131 toast.setText(msg); 132 } 133 // toast.setGravity(Gravity.CENTER, 0, 0); //默认居中显示 134 toast.show(); 135 }); 136 } 137 138 } 139 140 /** 141 * 长时间显示Toast【居下】 142 * 143 * @param msg 显示的内容-字符串 144 */ 145 public static void showLongToast(String msg) { 146 if (EmptyUtil.isNotEmpty(msg) && EmptyUtil.isNotEmpty(App.getContext())) { 147 Observable.create(emit -> { 148 emit.onNext(msg); 149 emit.onComplete(); 150 }).observeOn(AndroidSchedulers.mainThread()) 151 .subscribe(re -> { 152 if (toast == null) { 153 toast = Toast.makeText(App.getContext(), msg, Toast.LENGTH_LONG); 154 } else { 155 toast.setText(msg); 156 } 157 toast.setGravity(Gravity.BOTTOM, 0, 0); //默认居中显示 158 toast.show(); 159 }); 160 } 161 } 162 }