1

ソフトキーボードが開かれたかどうかを検出する必要があります。私はそれを行う方法についてここでいくつかの記事を読ん.

ここでの私の問題は、すべてが Java コードであり、Java コードで何もできないことです。API の Monodroid に相当するものや、その他の小さなことを知らないためです...

私が理解した別のことは、InputMethodService.OnWindowShown() メソッド/イベントと、キーボードが表示されているかどうかに関係なく識別子があることです。

var inputManager = (InputMethodService)GetSystemService(InputMethodService);
inputManager.OnWindowShown();
bool bla = inputManager.IsInputViewShown;

これらの行でキーボードが開いているかどうかを識別する方法はありますか、またはサイズ変更を行う必要がありますか? サイズ変更が唯一のものである場合、Mono for Android ではどのように機能しますか?

4

2 に答える 2

3

try this:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

    if (imm.isAcceptingText()) {
        writeToLog("Software Keyboard was shown");
    } else {
        writeToLog("Software Keyboard was not shown");
    }
于 2013-01-25T08:48:57.140 に答える
1

ソフト キーボードが表示されているかどうかはわかりませんが、アクティビティのビューのサイズが変更されていることを知ることで、ソフト キーボードが表示されていることを間接的に知ることができます。
この 2 行はソフト キーボードを非表示にします。

var input = (InputMethodManager)GetSystemService(InputMethodService);
input.HideSoftInputFromWindow(editText1.WindowToken, HideSoftInputFlags.None);

また、見ることができます..

于 2013-01-25T10:03:03.383 に答える