snackbar比toast好看多了,因此新的app我把全部的toast都替换成了snackbar。android
关于关闭键盘,android没有直接提供给咱们方法提供,能够使用以下方法api
/** * 关闭键盘 */ @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1) public static void disappearKeybaroad(Activity context) { InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE); if (isSoftShowing(context)) {//先判断键盘是不是开启状态,是则关闭 imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } } /** * 判断键盘是否在显示 */ @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1) public static boolean isSoftShowing(Activity context) { //获取当前屏幕内容的高度 int screenHeight = context.getWindow().getDecorView().getHeight(); //获取View可见区域的bottom Rect rect = new Rect(); context.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); return screenHeight - rect.bottom - getSoftButtonsBarHeight(context) != 0; } /** * 底部虚拟按键栏的高度 * * @return */ @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1) private static int getSoftButtonsBarHeight(Activity activity) { DisplayMetrics metrics = new DisplayMetrics(); //这个方法获取可能不是真实屏幕的高度 activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); int usableHeight = metrics.heightPixels; //获取当前屏幕的真实高度 activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics); int realHeight = metrics.heightPixels; if (realHeight > usableHeight) { return realHeight - usableHeight; } else { return 0; } }
关于这样的作法相对于关闭键盘要简单的多,只须要在manifests中为对应的activity加上这句配置便可:app
这条配置的主要做用就是让键盘不要挡住咱们输入的内容,对应的activity有了以上配置就能够实现上述效果了O(∩_∩)Oide