Jac*_*ień 7 android android-keypad android-softkeyboard
我有Activity单身Fragment就可以了.EditText片段上有一个.
一旦片段显示,键盘就会弹出,但我设法在清单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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这个方法不是很糟糕,而且有些不对劲.Dialog EditText有inputType="numberDecimal".在closeInput()似乎不关闭键盘时,仅将其改为默认的字母排列状态.
这里发生了什么?
Jac*_*ień 15
在我的情况下,我使用的方法:
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);
}
Run Code Online (Sandbox Code Playgroud)
由于Manifest中的活动设置,它拒绝正常工作,如果我记得你不能android:windowSoftInputMode="any_of_these"设置
小智 8
从片段onCreateView()方法,你可以这样做:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
Run Code Online (Sandbox Code Playgroud)
它会在Dismiss of Dialog上自动隐藏软键盘
小智 5
在BaseDialog.java中
protected void hideSoftKeyboard() {
InputMethodManager imm = (InputMethodManager) this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8379 次 |
| 最近记录: |