在我的布局中,我有一个editText
和一个button
。
如果editText
获得或失去焦点,键盘显示或隐藏的内容。为此,我在OnFocusChangeListener
上添加了editText
,并隐藏或显示了看着hasFocus
标志的键盘。
问题在于,当editText
拥有焦点并且如果我触摸按钮可以看到键盘时,就会调用focusChangeListener
,我会隐藏键盘,但是button
{ {1}}没有被调用。隐藏键盘后,我必须再次单击该按钮。
如果相反,当editText失去焦点时出现延迟(onClickListener
),就会调用postDelayed({ hideKeyboard() }, 500)
。
添加延迟似乎很容易。如何隐藏键盘并仍然收到按钮点击?
答案 0 :(得分:0)
使用此方法单击按钮时手动隐藏键盘并删除焦点监听器
public void hideKeyboard(View view) {
if (view != null) {
InputMethodManager inputMethodManager = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
要专注于屏幕启动时EditText
,可以在xml中使用<requestFocus/>