EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

转自链接    http://www.cnblogs.com/niupi/p/6251663.html

软键盘的隐藏方法一:

注:该方法其实是如果软键盘隐藏的状态这打开软键盘,反之着相反。

InputMethodManager imm =(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);


软键盘的隐藏方法二:

注:推荐使用这个

InputMethodManager imm =(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),0);



软键盘的代码打开 方法:

InputMethodManager imm=(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(mEditText, InputMethodManager.SHOW_FORCED);//显示输入法



软键盘显示和隐藏的监听:

注: mReplayRelativeLayout是EditText的父布局

//监听软键盘是否显示或隐藏

mReplayRelativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(newViewTreeObserver.OnGlobalLayoutListener() {

@OverridepublicvoidonGlobalLayout() {

Rect r=newRect();

mReplayRelativeLayout.getWindowVisibleDisplayFrame(r);intscreenHeight =mReplayRelativeLayout.getRootView()

.getHeight();intheightDifference = screenHeight -(r.bottom);if(heightDifference > 200) {//软键盘显示//changeKeyboardHeight(heightDifference);}else{//软键盘隐藏}

}

});

你可能感兴趣的:(EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听)