我有一个带有Edit Text
输入框的活动。当活动被初始化时,安卓键盘会显示出来。如何让键盘保持隐藏状态,直到用户聚焦该输入框?
我有一个带有Edit Text
输入框的活动。当活动被初始化时,安卓键盘会显示出来。如何让键盘保持隐藏状态,直到用户聚焦该输入框?
我认为以下内容可能有效
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
我以前已经用过它来做这种事情了。
EditText
的键盘?:) 这是为了在包含 EditText
的活动启动时隐藏键盘。 - Martynas试试这个 -
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"
...
>
这将在适当的时候隐藏键盘,但在必须显示键盘的情况下平移活动视图。
使用主题将其隐藏于所有活动中
<style name="MyTheme" parent="Theme">
<item name="android:windowSoftInputMode">stateHidden</item>
</style>
设置主题
<application android:theme="@style/MyTheme">
android:focusable="false"
android:focusableInTouchMode="false"
它会起作用的 :)
如果您使用的是API级别21,可以使用editText.setShowSoftInputOnFocus(false)函数。
尝试在清单文件中声明它
<activity
android:name=".HomeActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden" >
只需在 AndroidManifest.xml 中添加
<activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden">
</activity>
你还可以在包含“问题”所在的 .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被包含在另一个布局中:
<?xml version="1.0" encoding="utf-8"?>
<ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
... > <!--not here-->
... <!--other elements-->
<LinearLayout
android:id="@+id/theDirectParent"
...
android:focusable="true"
android:focusableInTouchMode="true" > <!--here-->
<EditText
android:id="@+id/myEditText"
...
android:hint="@string/write_here" />
<Button
android:id="@+id/button_ok"
...
android:text="@string/ok" />
</LinearLayout>
</ConstraintLayout>
关键是确保EditText不直接可聚焦。
拜拜!;-)
对我来说最好的解决方案是将你的类粘贴在这里
@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();
}
只需在manifest.xml文件中添加此内容即可。
<activity android:name=".MainActivity"
android:windowSoftInputMode="stateHidden">
<activity android:windowSoftInputMode="stateHidden" ...>
表示隐藏软键盘。 - idiottigerandroid:windowSoftInputMode="adjustPan"
一起使用? - János