我必须检测软键盘是否已打开。我在这里读了一些关于如何做的文章,一个例子是>this<还有另一个,也许是更好的一个,但两个针对同一个目标,检查布局/视图是否被迫调整大小。
我的问题在于,所有这些都是java代码,我无法用java代码做任何事情,因为我不知道API的Monodroid等价物以及其他一些小东西...
我发现的另一件事是,有一个InputMethodService.OnWindowShown()方法/事件,以及键盘显示与否的标识符。
var inputManager = (InputMethodService)GetSystemService(InputMethodService);
inputManager.OnWindowShown();
bool bla = inputManager.IsInputViewShown;
有没有办法识别键盘是否被打开,使用这些线,还是我必须做调整大小的事情?如果调整大小是唯一的东西,它在Android的Mono中如何工作?
答案 0 :(得分:3)
试试这个:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
writeToLog("Software Keyboard was shown");
} else {
writeToLog("Software Keyboard was not shown");
}
答案 1 :(得分:1)
如果显示软键盘,无法检测,但您可以通过了解调整活动视图来间接地知道显示软键盘。
这2行隐藏了软键盘..
var input = (InputMethodManager)GetSystemService(InputMethodService);
input.HideSoftInputFromWindow(editText1.WindowToken, HideSoftInputFlags.None);
也可以看..