8

各行にがありListViewます。このアクティビティのマニフェストでEditTextを設定windowSoftInputModeしたので、レイアウトをタップすると、キーボードの上に表示されるようにレイアウトがパンします。adjustPanEditText

これは、 を初めてタップしたときに機能しEditTextます。しかし、戻るボタンを押してキーボードを閉じると、同じ EditText をもう一度タップすると (他に何もタップしないので、カーソルは最初の に残りますEditText)、キーボードは元に戻りますが、今回はレイアウトがパンしません。この結果、 がEditTextキーボードの後ろに隠れてしまいます。

誰もこの動作を経験したことがありますか/それを解決する方法を知っていますか?

ありがとう

4

1 に答える 1

8

なぜこれが起こるのかまだわかりませんが、私には解決策があります。

次のようにメソッドをサブクラス化EditTextしてオーバーライドしました。onKeyPreIme(int keyCode, KeyEvent event)

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event)
{
    if(keyCode == KeyEvent.KEYCODE_BACK)
    {
        clearFocus();
    }
    return super.onKeyPreIme(keyCode, event);
}

これで、戻るキーを押すと、EditTextフォーカスが失われます。次に、もう一度タップすると、目的の動作が得られます。

于 2011-02-10T15:19:48.080 に答える