如何避免当活动开始时自动出现Android键盘
我有一个EditText
小部件的活动。每次此活动显示时,我的EditText
都会关注并显示Android键盘。我不想要这个。我不想自动安卓键盘显示。我该怎么办?如何避免当活动开始时自动出现Android键盘
试试这个还 -
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
否则,声明在manifest文件的活动 -
<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"
...
>
这会在适当的时候隐藏键盘,但在需要显示键盘的情况下平移活动视图。
这应该是正确答案 – martyglaubitz 2014-04-25 16:07:07
感谢您在代码和xml中显示!事实上,这是最正确的答案!特别是因为它可能是你花3分钟写两种方法,使你不是第一次;-) – eric 2017-04-21 01:13:20
隐藏它使用的主题
<style name="MyTheme" parent="Theme">
<item name="android:windowSoftInputMode">stateHidden</item>
</style>
设置主题
<application android:theme="@style/MyTheme">
试图声明它menifest文件
<activity android:name=".HomeActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden"
>
如果您正在使用API的所有活动21级,你可以使用editText.setShowSoftInputOnFocus(false);
//to hide the soft keyboard
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
隐藏键盘的功能。
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">
这两个属性添加到您的父母布局(例如:线性布局,相对布局)
android:focusable="false"
android:focusableInTouchMode="false"
它会做的伎俩:)
只需添加在AndroidManifest.xml
<activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden">
</activity>
发生这种情况时,您EditText是第一次获得焦点时,当你的活动开始。因此,只需将初始焦点设置为其他视图,即可无需代码即可可靠地解决此问题。你可以用XML做到这一点,不需要代码。
例子:
<Button
android:id="@+id/mybutton">
<requestFocus />
</Button>
这里不工作 – HelloWorld 2017-01-22 16:47:10
只是检查:你试图为某个对象设置
@HelloWorld您能否确认,您是否使用过 2017-03-06 19:06:33
对我来说最好的解决方案,粘贴类的清单`
@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();
}
的' – idiottiger 2012-03-16 06:19:06
可能重复[ Android的屏幕上的键盘自动弹出](http://*.com/questions/2496901/android-on-screen-keyboard-auto-popping-up) – Caleb 2012-03-17 18:35:57
如何与'android:windowSoftInputMode =“adjustPan”一起使用“ '? – 2016-10-29 21:19:58