public class KeyboardUtils
extends java.lang.Object
implements android.view.ViewTreeObserver.OnGlobalLayoutListener
| Modifier and Type | Class and Description |
|---|---|
static interface |
KeyboardUtils.SoftKeyboardToggleListener |
| Modifier and Type | Method and Description |
|---|---|
static void |
addKeyboardToggleListener(android.app.Activity act,
KeyboardUtils.SoftKeyboardToggleListener listener)
Add a new keyboard listener
|
static void |
addKeyboardToggleListener(android.view.ViewGroup act,
KeyboardUtils.SoftKeyboardToggleListener listener)
Add a new keyboard listener
|
static void |
dispatchTouchEvent(android.view.MotionEvent ev,
android.app.Activity activity)
点击屏幕空白区域隐藏软键盘
|
static void |
dispatchTouchEvent(android.view.MotionEvent ev,
android.app.Dialog dialog)
点击屏幕空白区域隐藏软键盘
|
static void |
dispatchTouchEvent(android.view.MotionEvent ev,
android.view.Window window)
点击屏幕空白区域隐藏软键盘
|
static void |
fixSoftInputLeaks(android.content.Context context)
修复软键盘内存泄漏
|
static void |
forceCloseKeyboard(android.view.View activeView)
Force closes the soft keyboard
|
static void |
hideSoftInput(android.app.Dialog dialog)
动态隐藏弹窗弹出的软键盘【注意:一定要在dialog.dismiss之前调用】
|
static void |
hideSoftInput(android.content.DialogInterface dialog)
动态隐藏弹窗弹出的软键盘【注意:一定要在dialog.dismiss之前调用】
|
static void |
hideSoftInput(android.view.View view)
动态隐藏软键盘
|
static void |
hideSoftInputClearFocus(android.view.View view)
动态隐藏软键盘并且清除当前view的焦点【记住,要在xml的父布局加上android:focusable="true" 和 android:focusableInTouchMode="true"】
|
static boolean |
isShouldHideKeyboard(android.view.View view,
android.view.MotionEvent event)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
|
static boolean |
isShouldHideKeyboard(android.view.Window window,
android.view.MotionEvent event)
根据用户点击的坐标获取用户在窗口上触摸到的View,判断这个View是否是EditText来判断是否隐藏键盘
|
static boolean |
isSoftInputShow(android.app.Activity activity)
输入键盘是否在显示
|
static boolean |
isSoftInputShow(android.view.ViewGroup rootView)
输入键盘是否在显示
|
static boolean |
isSoftInputShow(android.view.Window window)
输入键盘是否在显示
|
static boolean |
onDisableBackKeyDown(int keyCode)
禁用物理返回键
|
void |
onGlobalLayout() |
static void |
removeAllKeyboardToggleListeners()
Remove all registered keyboard listeners
|
static void |
removeKeyboardToggleListener(KeyboardUtils.SoftKeyboardToggleListener listener)
Remove a registered listener
|
static void |
setSoftInputAdjustNothing(android.app.Activity activity)
软键盘以覆盖当前界面的形式出现
|
static void |
setSoftInputAdjustPan(android.app.Activity activity)
软键盘以上推当前界面的形式出现, 注意这种方式不会改变布局的高度
|
static void |
setSoftInputAdjustResize(android.app.Activity activity)
软键盘以顶起当前界面的形式出现, 注意这种方式会使得当前布局的高度发生变化,触发当前布局onSizeChanged方法回调,这里前后高度差就是软键盘的高度了
|
static void |
showSoftInput(android.widget.EditText view)
显示软键盘
|
static void |
showSoftInputForce(android.app.Activity activity)
强制显示软键盘
|
static void |
toggleKeyboardVisibility(android.content.Context context)
Manually toggle soft keyboard visibility
|
static void |
toggleSoftInput()
切换软键盘显示与否状态
|
public void onGlobalLayout()
onGlobalLayout in interface android.view.ViewTreeObserver.OnGlobalLayoutListenerpublic static void addKeyboardToggleListener(android.app.Activity act,
KeyboardUtils.SoftKeyboardToggleListener listener)
act - calling activitylistener - callbackpublic static void addKeyboardToggleListener(android.view.ViewGroup act,
KeyboardUtils.SoftKeyboardToggleListener listener)
act - calling activitylistener - callbackpublic static void removeKeyboardToggleListener(KeyboardUtils.SoftKeyboardToggleListener listener)
listener - KeyboardUtils.SoftKeyboardToggleListenerpublic static void removeAllKeyboardToggleListeners()
public static void toggleKeyboardVisibility(android.content.Context context)
context - calling contextpublic static void forceCloseKeyboard(android.view.View activeView)
activeView - the view with the keyboard focuspublic static void setSoftInputAdjustNothing(android.app.Activity activity)
activity - public static void setSoftInputAdjustResize(android.app.Activity activity)
activity - public static void setSoftInputAdjustPan(android.app.Activity activity)
activity - public static boolean isSoftInputShow(android.app.Activity activity)
activity - 应用窗口public static boolean isSoftInputShow(android.view.Window window)
window - 应用窗口public static boolean isSoftInputShow(android.view.ViewGroup rootView)
rootView - 根布局public static boolean onDisableBackKeyDown(int keyCode)
使用方法:
需重写 onKeyDown
keyCode - public static void dispatchTouchEvent(android.view.MotionEvent ev,
android.app.Activity activity)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
需重写 dispatchTouchEvent
ev - 点击事件activity - 窗口public static void dispatchTouchEvent(android.view.MotionEvent ev,
android.app.Dialog dialog)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
需重写 dispatchTouchEvent
ev - 点击事件dialog - 窗口public static void dispatchTouchEvent(android.view.MotionEvent ev,
android.view.Window window)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
需重写 dispatchTouchEvent
ev - 点击事件window - 窗口public static boolean isShouldHideKeyboard(android.view.View view,
android.view.MotionEvent event)
view - 窗口event - 用户点击事件public static boolean isShouldHideKeyboard(android.view.Window window,
android.view.MotionEvent event)
window - 窗口event - 用户点击事件public static void hideSoftInput(android.view.View view)
view - 视图public static void hideSoftInput(android.content.DialogInterface dialog)
dialog - 对话框public static void hideSoftInput(android.app.Dialog dialog)
dialog - 对话框public static void hideSoftInputClearFocus(android.view.View view)
view - 视图public static void toggleSoftInput()
public static void showSoftInputForce(android.app.Activity activity)
activity - 活动窗口public static void showSoftInput(android.widget.EditText view)
view - 可输入控件,并且在焦点上方可显示public static void fixSoftInputLeaks(android.content.Context context)
context - context