2011-02-10 26 views
8

私はそれぞれの行にEditTextListViewを持っています。このアクティビティのマニフェストにwindowSoftInputModeadjustPanを設定しました。そのため、EditTextをタップすると、レイアウトがパンの上に表示されるようにパンが移動します。ListViewのEditTextとwindowSoftInputModeのadjustPan

これは初めてEditTextをタップしたときに機能します。しかし、キーボードを閉じるために戻るボタンを押した場合、同じEditTextをもう一度タップしてください(カーソルは最初のEditTextに残ります)。キーボードは元に戻ってしまいますが、レイアウトはこの時間に移動しません。その結果、EditTextはキーボードの後ろに隠れてしまいます。

誰もこの動作を経験しているか、それを解決する方法を知っていますか?

ありがとう

+0

は私のバグのようですね! – Dori

答えて

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がフォーカスを断念。それからもう一度タップすると、望ましい動作が得られます。

+0

ありがとうマット... Androidでこれらのすべての異常に気付いたのは唯一の人ではありません。まだ若いけど... APIは将来的には揺れ動くだろう。あなたは時間があるとき、私が拾ったこの他の欠陥をチェックしてください:http://stackoverflow.com/questions/15267137/android-adjustpan-not-working-after-edittext-container-has-been-translated多くのありがとう – Houston

+0

ニースハック。どうもありがとう :) –

関連する問題