1

ユーザーが編集ボックス内に触れると、ソフトキーボードが表示されます。ユーザーがハードウェアの「戻る」ボタンを押すと、ソフト キーボードは消えます。この状況を検知したい。私は周りを見回しましたが、これまでに見た中で最高の反応は次のとおりです。

http://groups.google.com/group/android-developers/browse_thread/thread/9d1681a01f05e782

私の質問は、アプリケーション ウィンドウのサイズが変更されたかどうかをどのように検出できますか?

このテキストを Android マニフェスト ファイルのアクティビティに追加しました: android:windowSoftInputMode="adjustResize"

しかし、変更を検出する方法がよくわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

Android には、キーボードが表示されているかどうかを確認するための API が用意されていません。ただし、トップ レベル レイアウトの高さをキーオフして、この情報を決定することができます。

まず、アクティビティの android:windowSoftInputMode 属性を「adjustResize」に設定する必要があります。

次に、目的のレイアウト タイプ (LinearLayout など) を拡張する新しいクラスを作成します。そのクラスでは、レイアウトの高さが変更されたときに呼び出されるいくつかの異なるメソッドをオーバーライドできます (キーボードの表示または非表示による)。これらの呼び出しがトリガーされると、レイアウトの高さと画面の高さを比較できます。この 2 つに大きな違いがある場合 (つまり、通知バーのサイズ以上)、キーボードが表示されます。

最後に、新しいクラスをレイアウト xml のトップ レベル レイアウトとして使用するようにしてください (たとえば、LinearLayout の代わりに)。

より完全な説明が必要な場合は、http: //www.cannedcoding.com/2011/08/soft-keyboard.htmlに書きました。

于 2011-08-04T08:03:03.050 に答える
0

戻るボタンをリッスンするための入力方式サービス(http://developer.android.com/reference/android/inputmethodservice/InputMethodService.htmlを参照)を作成すると、機能する場合があります。押すと、それをアクティビティに渡すことができます。アクティビティは、ソフトキーボードを削除するとともに、実行したいことを実行します。

于 2011-04-18T17:08:02.050 に答える