Android简单的动态控制软键盘的显隐

2014-11-24 12:05:08 · 作者: · 浏览: 2

隐藏软键盘方法:




getWindow().addFlags(


WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);




源码注释:



/** Window flag: invert the state of {@link #FLAG_NOT_FOCUSABLE} with


* respect to how this window interacts with the current method. That


* is, if FLAG_NOT_FOCUSABLE is set and this flag is set, then the


* window will behave as if it needs to interact with the input method


* and thus be placed behind/away from it; if FLAG_NOT_FOCUSABLE is


* not set and this flag is set, then the window will behave as if it


* doesn't need to interact with the input method and can be placed


* to use more space and cover the input method.


*/


public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;




该方法会导致界面里面所有需要弹出软键盘的控件均无法显示软键盘。




当然当我们需要清除该状态时,可以在输入控件的Touch事件里面进行解除



EditText.setOnTouchListener(new OnTouchListener() {


@Override


public boolean onTouch(View v, MotionEvent event) {


// TODO Auto-generated method stub


getWindow().clearFlags(


WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);


return false;


}


});