活动开始时如何避免自动出现android键盘
我有一个EditText
小部件的活动。 每次这个活动显示,我的EditText
获得焦点和Android键盘出现。 我不想要这个 我不希望Android键盘自动显示。 我该怎么办?
我认为以下可能工作
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
我以前用过这种东西。
试试这个也 –
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"
它会做的伎俩:)
尝试在清单文件中声明它
<activity android:name=".HomeActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysHidden" >
只需在AndroidManifest.xml中添加即可
<activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden"> </activity>
如果您使用API级别21,则可以使用editText.setShowSoftInputOnFocus(false);
最好的解决scheme,粘贴你的课堂
@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(); }
隐藏键盘的function。
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">
//to hide the soft keyboard InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
当您的活动开始时,EditText是获得Focus的第一个视图时,会发生这种情况。 因此,只需将初始焦点设置为其他视图,就可以可靠地解决此问题。 你可以在XML中做到这一点,不需要代码。
例:
<Button android:id="@+id/mybutton"> <requestFocus /> </Button>