11

我有很多编辑文本的活动。每当我加载该活动时,键盘就会出现并占据屏幕的一半,这使得该活动看起来很糟糕。那么当我加载该活动时,有什么方法可以隐藏键盘。

4

7 回答 7

38

在你的 onCreate() 中使用这个..

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
于 2012-12-10T12:13:49.307 回答
9

在 RootLayout 的活动 XML 文件中添加这两行,即相对或线性(无论您采用什么):

android:focusableInTouchMode="true" 

在活动清单文件中添加这一行

 android:windowSoftInputMode="stateHidden"
于 2012-12-10T12:14:27.097 回答
8

在你的 AndroidManifest.xml 添加属性 android:windowSoftInputMode

<activity android:name="your.package.ActivityName"
      android:windowSoftInputMode="stateHidden"  />
于 2015-06-17T11:24:10.673 回答
5
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
于 2012-12-10T12:10:13.597 回答
0

您可以使用 intputmethodmangare 执行此操作...使用以下代码..

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
于 2012-12-10T12:11:55.347 回答
0

我创建了一个方法,我在 onCreate 事件中调用了所有必需的 Activity 类。在所有情况下都为我工作。

public class ClassLib {
        public static void hideKeyboard(Activity activity) {
        //Hide keyboard
        activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }
}
于 2020-11-09T05:55:00.230 回答
0

将此代码放在onCrete函数上:

new Handler().postDelayed(new Runnable() { @Override public void run() { InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); view.clearFocus(); }}, 50);

view你的 EditText在哪里

可运行是因为代码可能在editText渲染之前执行。

于 2019-02-08T15:05:24.433 回答