アプリを起動するとEditTextがある場合はそこにフォーカスがあたってしまい、ソフトウェアキーボードが開いた状態でかなり醜くなってしまう。ソフトウェアキーボードが起動しないようにするには、
- ボタンなどにフォーカスを当てる
- EditTextのフォーカスを解除する
- ソフトウェアキーボードを閉じる
という方法がある。
1、ボタンなどにフォーカスを当てる
これをやるとボタンだったら押された状態になり、ボタンの色が変わるので却下。
次にTextViewにフォーカスを当てる場合はうまくいくけど、強引さが気になる。
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:focusable=”true”
android:focusableInTouchMode=”true” ><requestFocus /> //これを追加することを忘れない。
</TextView>
2、EditTextのフォーカスを解除する
これが一番シンプルで良い感じがする。「.clearFocus()」を実行するといい。
text_tw = (EditText)findViewById(R.id.test);
text_tw.clearFocus();
3、ソフトウェアキーボードを閉じる
これは起動直後ではうまく起動しなかった。
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(getBaseContext().INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(text_tw.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);