首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不为keyboardHidden触发onConfigurationChanged()

不为keyboardHidden触发onConfigurationChanged()
EN

Stack Overflow用户
提问于 2011-06-08 21:50:36
回答 1查看 11.2K关注 0票数 18

我已经按照这里的各种问题和答案设置了我的安卓活动,以覆盖onConfigurationChanged(),以便在软键盘打开和关闭时执行逻辑。以下是我的代码的相关摘录。我已经将其归结为最简单的场景:

AndroidManifest.xml

代码语言:javascript
复制
...
<activity 
    android:name=".SearchActivity" 
    android:label="@string/app_name" 
    android:configChanges="keyboard|keyboardHidden|orientation"
/>
...

SearchActivity.java

代码语言:javascript
复制
...
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    Toast.makeText(this, "onConfigurationChanged()", Toast.LENGTH_SHORT).show();
}
...

上面的代码将在我更改方向时显示Toast,但在软键盘打开或关闭时不执行任何操作。我测试过通过EditText focusing打开软键盘,以及通过长按菜单按钮手动打开软键盘。也不要触发onConfigurationChanged()调用。

因此,自从方向更改触发后,代码似乎可以正常工作,但我在软键盘上什么也得不到。有什么想法吗?如果答案是"onConfigurationChanged()没有捕获软键盘事件“,那么检测和处理此事件的合适解决方案是什么?

为了以防万一,我在一个运行姜饼的Droid上进行了测试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-08 22:03:19

不,onConfigurationChange()不能捕获软键盘事件:它不是配置更改。定向更改会导致使用一组新的资源(例如layout-land vs layout-port),这是配置更改的定义。

那么该怎么做呢?在显示键盘时不会触发事件,但您可以检测到键盘导致布局调整的时间。

代码见How to check visibility of software keyboard in Android?

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6279771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档