6

ソフトキーボードが表示されたり消えたりする理由を教えてください。

さまざまなコントロール、主にEditTextsとButtonsを備えたレイアウトがあります。そのページを最初に表示したとき、レイアウトの上部にあるEditTextにフォーカスがあり、ソフトキーボードが画面の下部45%を覆っています。

EditTextにフォーカスがあるため、キーボードがそこにあると想定したので、代わりに、ページの下部にあるボタンにフォーカスを与えることにしました。。。

  butDone.setFocusableInTouchMode(true);
  bResult = butDone.requestFocus();

... setContentView()の直後。これは、ボタンにフォーカスを与える限り機能しました。ボットンがフォーカスを取得し、EditTextはフォーカスを失いましたが、キーボードはまだそこにありました。最終的に私は経由でキーボードを取り除きました

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

しかし、明らかに、EditTextに焦点が当てられているという私の理論は間違っていました。では、キーボードが表示されるときに表示される理由についての「ルール」、またはそれらのルールへのリンクについて誰かに説明してもらえますか?前もって感謝します!

4

1 に答える 1

0

デフォルトEditTextでは、レイアウトの XML でフォーカスについて何も定義していない場合、最初のオブジェクトがフォーカスを取得します。

詳細については、この回答を確認してください。キーボードを閉じるのではなく、キーボードを表示したくない場合は、このソリューションを使用する必要があります。

于 2013-03-14T21:30:12.277 に答える