我有一个 Activity
,上面有一个 Fragment
。 fragment 上有一个 EditText
。
fragment 一显示,键盘就会弹出,但是我设法在 list android:windowSoftInputMode="stateHidden"中阻止它设置
但是,还有一个按钮,可以打开一个带有另一个 EditText 的对话框。
我有一个方法可以在关闭对话框时自动关闭键盘。
public static void closeInput(final View caller) {
caller.post(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) caller.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(caller.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
}
});
}
这个方法不是一个很好的 hack,它有一些错误。对话框的 EditText
有 inputType="numberDecimal"
。 closeInput()
似乎没有关闭键盘,只是将其更改为默认的字母顺序状态。
这是怎么回事?
最佳答案
在我的例子中,我使用了方法:
public static void closeInput(final View caller) {
caller.postDelayed(new Runnable() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager) caller.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(caller.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}, 100);
}
由于 list 中的 Activity 设置,它拒绝正常工作,如果我记得你不能设置 android:windowSoftInputMode="any_of_these"
关于android - 如何在对话框关闭时隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106486/