Andoird 软键盘的弹出、收起

1,在.xml文件中,editview 外部的 layout增加以下配置:

        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true"

即拿到焦点,不会进入页面就弹出键盘,影响体验。

2,在activity中,增加焦点改变的监听 OnFocusChangeListener

    //点击软键盘外部,收起软键盘
   View.OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            LogUtil.i("hasFocus:"+hasFocus);
            if(!hasFocus){
                InputMethodManager manager = ((InputMethodManager) MyApplication.sContext.getSystemService(MyApplication.sContext.INPUT_METHOD_SERVICE));
                if (manager != null)
                    manager.hideSoftInputFromWindow(view.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }
    };

3,给editview增加监听

mTestEdit.setOnFocusChangeListener(onFocusChangeListener)

4,如此就完成了!

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/126290125