エディットテキストがたくさんあるアクティビティがあります。そのアクティビティをロードするたびに、キーボードが表示されて画面の半分を消費するため、そのアクティビティの見栄えが悪くなります。したがって、そのアクティビティをロードするときにキーボードを非表示にする方法はありますか。
7 に答える
onCreate()でこれを使用します。
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
RootLayoutのアクティビティのXMLファイルにこの2行を追加します。つまり、相対または線形(取得したものは何でも):
android:focusableInTouchMode="true"
この行をアクティビティマニフェストファイルに追加します
android:windowSoftInputMode="stateHidden"
AndroidManifest.xmlに、属性 android:windowSoftInputMode:を追加します。
<activity android:name="your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
これは、intputmethodmangare...を使用して次のコードを使用して実行できます。
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 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
実行可能は、がレンダリングされる前にコードが実行される可能性があるためです。
onCreateイベントで必要なすべてのActivityクラスで呼び出すメソッドを作成しました。すべてのシナリオで私のために働いた。
public class ClassLib {
public static void hideKeyboard(Activity activity) {
//Hide keyboard
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
}