2011-04-18 194 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