其他分享
首页 > 其他分享> > Android软键盘处理

Android软键盘处理

作者:互联网

弹起来的时候

隐藏的时候

如果还是没效果,那就把时间弄大点,比如300ms

软键盘隐藏部分组件的处理 TODO

https://www.jianshu.com/p/89eec61fa699

/**
     * 软键盘显示
     *
     * @param view
     */
    @RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
    public static void showSoftKeyboard(final View view) {
        if (view == null) {
            return;
        }
        view.setFocusable(true);
        view.setFocusableInTouchMode(true);
        if (!view.isFocused()) {
            view.requestFocus();
        }

        view.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager inputMethodManager = (InputMethodManager) view.getContext()
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                inputMethodManager.showSoftInput(view, 0);
            }
        }, 100);
    }
/**
     * 软键盘隐藏
     *
     * @param view
     */

   public static void hideSoftKeyboard(final View view) {
        if (view == null) {
            return;
        }

        view.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager manager = (InputMethodManager) view.getContext()
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                manager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }, 100);
    }
/**
 * 选取屏幕高度的2/3来判断 软键盘是否弹出
 * @param context
 * @return
 */
public static boolean isSoftShowing(Context context) {
    // 获取当前屏幕内容的高度
    int screenHeight = ((Activity)context).getWindow().getDecorView().getHeight();
    // 获取View可见区域的bottom
    Rect rect = new Rect();
    // DecorView即为activity的顶级view
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
        ((Activity)context).getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    }
    // 考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度)
    // 选取screenHeight*2/3进行判断
    return screenHeight*2/3 > rect.bottom;
}

标签:return,处理,InputMethodManager,软键盘,Android,View,public,view
来源: https://blog.csdn.net/u011623980/article/details/101298469