2011-05-13 60 views
3

解决了我的Android应用程序中的另一个问题后,我来到了另一件事。onInputShowListener Android - 是否可以检测是否显示任何软键盘?

重要的是,我可以做一些事情,比如隐藏一些视觉元素,如果SoftKeyboard如滑动输入或正常Android键盘显示。

我试过了onConfigurationChange =“KeyboardShow”(伪代码),但没有任何改变,例如当Skype显示时得到一个事件。

所以现在我的问题是,有没有解决方案或功能或侦听器,我可以处理这样的行为?

我希望有人能帮助我。

诚恳, 迈克朋兹

+0

你想知道是否显示任何键盘?或者如果某一个是? – 2011-05-13 16:59:49

+0

如果有的话,softwareKeyboards不是硬件。 – mikepenz 2011-05-13 17:26:28

回答

0

可能有更好的方法,但有可能是添加:android:configChanges="keyboardHidden"到清单。这将触发与任何键盘的变化,所以你需要查询Configuration对象

static Configuration prevConf = Configuration(); 
static int ignoreMasks = Configuration.HARDKEYBOARDHIDDEN_NO|Configuration.HARDKEYBOARDHIDDEN_YES; 

onCreate() { 
    prevConf = setToDefaults(); 
} 
// all your code here 

@Override 
public void onConfigurationChanged (Configuration newConfig) { 
    int deltas = newConfig.diff (prevConf); // what changed? 
    prevConf = newConfig; 

    if (delta & ignoreMasks) 
     return; // you're not interested in hard keyboards. 

    // your code here 
} 

我在位运算符吸,所以你可能需要努力解决这一问题。

这是API文档:

http://developer.android.com/reference/android/R.attr.html#configChanges

http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged%28android.content.res.Configuration%29

http://developer.android.com/reference/android/content/res/Configuration.html

+0

顺便说一句,这里有一个相关的问题:http://stackoverflow.com/questions/2150078/android-is-software-keyboard-显示一个答案使用间接方法依赖于您的布局的大小的变化。 – Aleadam 2011-05-13 19:35:19

+0

谢谢。自定义布局帮助我;) – mikepenz 2011-05-16 18:41:55

相关问题