如何在Activity启动时隐藏键盘

11

我有一个带有很多EditText的活动。每当我加载该活动时,键盘就会弹出并占据屏幕的一半,从而使该活动看起来很糟糕。所以是否有任何方法在加载该活动时隐藏键盘。

我有一个带有许多EditText的活动。每当我加载该活动时,键盘都会弹出并占据屏幕的一半,这使得该活动的外观变得糟糕。因此,是否有任何方法可以在加载该活动时隐藏键盘?

可能是如何在活动开始时隐藏软键盘的重复问题。 - Hasan El-Hefnawy
7个回答

38

在您的onCreate()中使用以下代码...

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

@CautionContinues, SudiptaforAndroid, Amitabha Biswas. 谢谢,愉快编码! - Mehul Ranpara

9
在您的活动XML文件的RootLayout中添加这两行代码,即相对布局或线性布局(无论您选择哪种):
android:focusableInTouchMode="true" 

在活动清单文件中添加此行

 android:windowSoftInputMode="stateHidden"

8

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

<activity android:name="your.package.ActivityName"
      android:windowSoftInputMode="stateHidden"  />

5
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

0

您可以使用intputmethodmangare来实现这一点...使用以下代码...

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

imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

0
将以下代码放在onCreate函数中: 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。
这个Runnable是因为代码可能会在editText被渲染之前执行。

0
我创建了一个方法,在所有需要的Activity类中的onCreate事件中调用。在所有情况下都对我有效。
public class ClassLib {
        public static void hideKeyboard(Activity activity) {
        //Hide keyboard
        activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接