我有一个Edit Text
输入的活动。初始化活动时,将显示Android键盘。在用户对输入进行聚焦之前,键盘如何保持隐藏状态?
答案 0 :(得分:401)
我认为以下内容可能有效
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
我以前用过这种东西。
答案 1 :(得分:168)
试试这个 -
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
否则,在清单文件的活动中声明 -
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden"
>
如果您已使用android:windowSoftInputMode
获取adjustResize
或adjustPan
等值,则可以合并两个值,如:
<activity
...
android:windowSoftInputMode="stateHidden|adjustPan"
...
>
这将在适当的时候隐藏键盘,但如果必须显示键盘,请平移活动视图。
答案 2 :(得分:32)
使用主题
隐藏所有活动<style name="MyTheme" parent="Theme">
<item name="android:windowSoftInputMode">stateHidden</item>
</style>
设置主题
<application android:theme="@style/MyTheme">
答案 3 :(得分:22)
将这两个属性添加到父布局(例如:线性布局,相对布局)
android:focusable="false"
android:focusableInTouchMode="false"
它会起作用:)
答案 4 :(得分:12)
尝试在清单文件中声明它
<activity android:name=".HomeActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden"
>
答案 5 :(得分:9)
只需添加AndroidManifest.xml
Microsoft.Band.Store
答案 6 :(得分:9)
如果您使用的是API级别21,则可以使用editText.setShowSoftInputOnFocus(false);
答案 7 :(得分:6)
最适合我的解决方案,粘贴您的课程
@Override
public void onResume() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onResume();
}
@Override
public void onStart() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onStart();
}
答案 8 :(得分:6)
您还可以在.xml布局文件的父布局中编写这些代码行,其中包含“问题”: 这是代码:
android:focusable="true"
android:focusableInTouchMode="true"
例如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
...
android:focusable="true"
android:focusableInTouchMode="true" >
<EditText
android:id="@+id/myEditText"
...
android:hint="@string/write_here" />
<Button
android:id="@+id/button_ok"
...
android:text="@string/ok" />
</LinearLayout>
关键是要确保EditText不能直接对焦。
再见! ; - )
答案 9 :(得分:3)
隐藏键盘的功能。
public static void hideKeyboard(Activity activity) {
View view = activity.getCurrentFocus();
if (view != null) {
InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
在AndroidManifext.xml文件中隐藏键盘。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateHidden">
答案 10 :(得分:3)
扩展@Lucas接受的答案:
在生命周期的早期事件之一中从您的活动中调用此方法:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
override fun onResume() {
super.onResume()
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
}
答案 11 :(得分:3)
只需将其添加到manifest.xml文件中
<activity android:name=".MainActivity"
android:windowSoftInputMode="stateHidden">
大功告成。
答案 12 :(得分:2)
您可以尝试为每个元素设置此唯一属性
TextView mtextView = findViewById(R.id.myTextView);
mtextView.setShowSoftInputOnFocus(false);
当元素处于焦点状态时,键盘不会显示
答案 13 :(得分:0)
//to hide the soft keyboard
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
答案 14 :(得分:0)
只需在您的活动中添加:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (getCurrentFocus() != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
return super.dispatchTouchEvent(ev);
}
答案 15 :(得分:0)
答案 16 :(得分:0)
声明此代码(android:windowSoftInputMode =“ stateAlwaysHidden”) 在您的活动标签内的清单中。
像这样:
<activity android:name=".MainActivity"
android:windowSoftInputMode="stateAlwaysHidden">