2011-04-18 232 views
1

我有一个编辑框的活动,当用户触摸编辑框内,软键盘出现。如果用户按下硬件“后退”按钮,软键盘将消失。我想检测这种情况。我环顾四周,到目前为止我见过的最好的回应就是这样一个:检测隐藏的软键盘

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

我的问题是 - 你怎么能检测到,如果你的应用程序窗口大小?

我加入这个文本到我的活动我的Android清单文件: 机器人:windowSoftInputMode =“adjustResize”

,但我不太清楚如何检测改变。

任何帮助非常感谢。

+0

你可以看看http://stackoverflow.com/questions/2150078/how-to-check-visibility-的软件键盘功能于安卓 – 2012-09-06 17:43:31

回答

1

Android不提供用于检查键盘是否可见的API。但是,您可以关闭顶级布局的高度以确定此信息。

首先,您必须将活动的android:windowSoftInputMode属性设置为“adjustResize”。

然后,创建一个新的类来扩展你想要的布局类型(例如LinearLayout)。在该类中,可以覆盖几个不同的方法,这些方法将被称为布局更改的高度(由于键盘被显示或隐藏)。触发这些调用时,您可以将布局的高度与屏幕的高度进行比较。如果两者之间存在实质性差异(即不仅仅是通知栏的大小),则可以看到键盘。

最后,确保您使用新的类作为布局xml中的顶层布局(例如,代替LinearLayout)。

如果您想更全面的解释,我已经写了一上来:http://www.cannedcoding.com/2011/08/soft-keyboard.html