2011-05-13 91 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

相關問題