【发布时间】:2013-12-20 09:28:13
【问题描述】:
我做了一个 FragmentActivity。一些片段包括EditText。
我希望,当软输入键盘启动并且 MotionEvent 发生时 - 除了在 EditText 内单击的事件 - 要隐藏软输入。到目前为止,我在 MainActivity 中编写了这段代码:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
InputMethodManager im = (InputMethodManager) getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
return super.dispatchTouchEvent(ev);
}
它似乎工作。但是当我在 EditText 内单击时,它会隐藏起来,然后又会出现。我不希望这种情况发生。在这种情况下,我希望键盘只保留在屏幕上。
当我单击片段内的 EditText 时,有什么方法可以以某种方式禁用
dispatchTouchEvent()?有什么方法可以检测到
dispatchTouchEvent()内的 EditText 的点击事件并在那里设置条件,禁用软输入的隐藏?
【问题讨论】:
标签: android android-softkeyboard motionevent