android 自动弹出软件盘和不弹出设置
1、不弹出软件盘设置。
进入新 Activity界面,想阻止软键盘自动弹出,只要在 AndroidManifest.xml 中对应的Activity下设置
android:windowSoftInputMode="adjustUnspecified|stateHidden"
安卓手机不可以自动弹出软键盘
在开发Anroid的时候,当你打开一个界面的时候,屏幕的焦点会自动停留在第一个EditText中,Android的软键盘默认会自动弹出,用户第一眼连界面都没有看清楚,软键盘就弹出来了,这就影响到了用户体验,我们需要设置打开界面的时候,当EditText获取焦点的时候,不弹出软键盘,其实也很简单,代码如下// 默认软键盘不弹出
getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
在OnCreate()函数中,加上即可,
在包含EditView的ViewGroup中添加:
android:focusableInTouchMode="false"
2.弹出软件盘
//inputManager
private InputMethodManager inputManager = null;
inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
@Override
public void hideSoftKeyBoard() {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive() && getActivity().getCurrentFocus() != null) {
if (getActivity().getCurrentFocus().getWindowToken() != null) {
imm.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
@Override
public void showSoftKeyBoard(final EditText editText) {
postDelayed(new Runnable() {
@Override
public void run() {
inputManager.showSoftInput(editText, 0);
}
}, 500);
}
3.参数详解:
- "stateUnspecified" 软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。这个是为了软件盘行为默认的设置。
-
"stateUnchanged" 软键盘被保持无论它上次是什么状态,是否可见或隐藏,当主窗口出现在前面时。
-
"stateHidden" 当用户选择该Activity时,软键盘被隐藏——也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。
-
"stateAlwaysHidden" 软键盘总是被隐藏的,当该Activity主窗口获取焦点时。
-
"stateVisible" 软键盘是可见的,当那个是正常合适的时(当用户导航到Activity主窗口时)。
-
"stateAlwaysVisible" 当用户选择这个Activity时,软键盘是可见的——也就是,也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。
-
"adjustUnspecified" 它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。
-
"adjustResize" 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间。
-
"adjustPan" 该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。