在应用程序加载时隐藏软键盘
Posted
技术标签:
【中文标题】在应用程序加载时隐藏软键盘【英文标题】:Hide soft keyboard on application load 【发布时间】:2011-09-01 15:16:38 【问题描述】:我有一个应用程序,主视图上有一个EditText
元素。
这意味着当我的应用程序加载时,默认情况下会出现软键盘。
我希望能够在加载时隐藏键盘,
所以在我点击EditText
视图之前它不会显示。
我该如何管理?
【问题讨论】:
【参考方案1】:在你的androidManifest.xml
:
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
更多关于windowSoftInputMode
的信息可以在here找到。
当用户进入新的 Activity 时,此设置将隐藏软键盘(即使 EditText 控件获得焦点)。只有当用户点击编辑框控件时才会显示软键盘。
【讨论】:
也许我不太懂英文,你在哪里看到仅当用户单击编辑框时显示的解释?文档说:“当用户选择活动时,软键盘被隐藏——也就是说,当用户肯定地向前导航到活动时,而不是因为离开另一个活动而返回到活动。”。不要误会我的意思。你的解释很清楚。但文档不是。【参考方案2】:你可以做一些更简单的事情。将此添加到 LinearLayout(或任何其他作为根的布局):
<LinearLayout
...
android:focusable="true"
android:focusableInTouchMode="true"
...
/>
【讨论】:
接受的答案对我不起作用,我已经设置了 stateHidden 。这个建议有效。我将其应用于 XML 布局:父视图组上的 android:focusable="true" 和 android:focusableInTouchMode="true"。【参考方案3】:InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
这将在所有情况下隐藏(即使 EditView 具有焦点):
EditText editView = (EditText) findViewById(R.id.editTextConvertValue);
editView.setInputType(InputType.TYPE_NULL);
【讨论】:
以上是关于在应用程序加载时隐藏软键盘的主要内容,如果未能解决你的问题,请参考以下文章