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.View focusView)
点击屏幕空白区域隐藏软键盘
|
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.view.View view)
动态隐藏软键盘
|
static boolean |
isShouldHideKeyboard(android.view.View v,
android.view.MotionEvent event)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
|
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 |
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 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.View focusView)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
需重写 dispatchTouchEvent
ev - focusView - 聚焦的viewpublic static void dispatchTouchEvent(android.view.MotionEvent ev,
android.view.Window window)
根据 EditText 所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘
需重写 dispatchTouchEvent
ev - window - 窗口public static boolean isShouldHideKeyboard(android.view.View v,
android.view.MotionEvent event)
v - event - public static void hideSoftInput(android.view.View view)
view - 视图public static void toggleSoftInput()
public static void fixSoftInputLeaks(android.content.Context context)
在Activity.onDestroy()中使用
context - context