android:EditText numberDecimal - 如何以最小化

时间:2017-03-29 20:48:19

标签: java android android-edittext

我有一个带有这些值的EditText:

android:digits="0123456789"
android:inputType="numberDecimal"

如您所见,我只想插入数字0-9。

我的问题是,当我到达包含此EditText的布局时,智能手机键盘会显示,因此它会隐藏屏幕,然后才能看到屏幕内容。 (虽然我没有按下编辑文本框!)

我希望键盘默认最小化。

我希望仅在我按下editText框后,才会显示键盘。

有可能这样做吗?

2 个答案:

答案 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 作为第二个参数,以确保在用户未明确强制显示键盘时(仅通过按住菜单)隐藏键盘。