Android 中有很多点击EditText弹出软键盘,并把软键盘的值显示在Editview中,但是这个过程也许会遇到比较坑人的问题。
以下是本人遇到的。
点击人物头像,弹出聊天的popwindow,点击编辑框弹出软键盘,在点击隐藏软键盘,在点击时软键盘不弹出了。根据网上的资料什么isactive()的判断,监听软键盘弹出和隐藏时View的高度几种方法几乎都没用什么效果,那怎么办了,只有霸王硬上弓了,强制弹出和隐藏。
初始化popwindow时给EditView触摸事件,强制弹出软键盘
edit_input.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
edit_input.setFocusable(true);
edit_input.setFocusableInTouchMode(true);//EditText与软键盘建立连接关系
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager)
context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit_input, InputMethodManager.SHOW_FORCED);
}
}, 100);
return false;
}
});
它的点击事件也是和以上一样,强制性弹出,至于隐藏软键盘,当EditText失去焦点时强制关闭
<pre name="code" class="java">InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edit_input.getWindowToken(), 0);