我有一个带有这些值的EditText:
android:digits="0123456789"
android:inputType="numberDecimal"
如您所见,我只想插入数字0-9。
我的问题是,当我到达包含此EditText的布局时,智能手机键盘会显示,因此它会隐藏屏幕,然后才能看到屏幕内容。 (虽然我没有按下编辑文本框!)
我希望键盘默认最小化。
我希望仅在我按下editText框后,才会显示键盘。
有可能这样做吗?
答案 0 :(得分:1)
您的EditText
正在关注活动负载。为防止这种情况,您可以执行以下操作:
方法1:将以下属性添加到父布局
android:focusableInTouchMode="true"
方法2:在清单中,将以下属性添加到活动标记内的活动中:
android:windowSoftInputMode="stateAlwaysHidden"
希望这有帮助。
答案 1 :(得分:1)
您可以强制Android使用 InputMethodManager隐藏虚拟键盘,调用 hideSoftInputFromWindow ,传入包含焦点视图的窗口的标记
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
这将强制键盘在所有情况下都被隐藏。在某些情况下,您需要传入 InputMethodManager.HIDE_IMPLICIT_ONLY 作为第二个参数,以确保在用户未明确强制显示键盘时(仅通过按住菜单)隐藏键盘。