2012-08-17 80 views
1

我正在使用GLSurfaceView渲染我的GUI。在一種情況下,我需要用戶輸入一個數字,並且爲了實現這個功能,我在頂部使用了一個FrameLayout,在其上面使用了一個帶有EditText的虛擬佈局。當需要輸入時,我將EditText對焦並強制顯示軟鍵盤。然後,我聽各種方式來結束輸入,輸入密鑰,IME_ACTION_DONE,後退鍵等。檢查軟鍵盤是否關閉

但是我剛剛意識到這種情況不起作用。在某些鍵盤上有一個「隱藏鍵盤」按鈕,它根本不發送鍵碼(有些鍵從這個鍵發回鍵碼)。鍵盤剛剛關閉,我無法確定輸入是否完成。 EditText仍然是重點。

有沒有什麼辦法可以捕捉到這個事件,或者其他任何方式來查看用戶是否關閉了鍵盤?

+0

我想你可以檢查你的視圖的onSizeChanged()。 – 2012-08-17 14:04:58

+0

該視圖是一個GLSurfaceView,它不是也不應該改變大小。軟鍵盤只出現在視圖的頂部。我應該嘗試檢查onSizeChanged嗎?? – cmbellman 2012-08-18 09:46:13

+0

我的建議是基於[這個答案](http://stackoverflow.com/a/3828646/1117415)。但我沒有使用'GLSurfaceView'的經驗。不會傷害嘗試。 – 2012-08-19 12:31:07

回答

0

有時你必須在盒子外面思考..我找不到任何方法來查看鍵盤在某些情況下是否被用戶隱藏。也許沒有辦法。所以我開始考慮如何在具有輸入字段等的「正常」xml佈局中工作。因爲我從來沒有想過這是一個問題。答案很簡單。這些表格總是有一個「完成」,「保存」,「更新」或類似的按鈕。

所以..我剛剛結束了添加一個按鈕作爲額外的選項,讓用戶告訴我的應用程序他們完成了輸入。 :)