2013-03-14 101 views
6

任何人都可以請解釋爲什麼軟鍵盤會出現並消失嗎?爲什麼Android軟鍵盤會出現?

我有一堆不同的控件,主要是EditTexts和按鈕的佈局。當我第一次顯示該頁面時,佈局頂部的EditText具有焦點,軟鍵盤覆蓋屏幕的底部45%

我認爲鍵盤出現是因爲EditText有焦點,所以我決定給我的頁面底部的按鈕,而不是通過。 。 。

butDone.setFocusableInTouchMode(true); 
    bResult = butDone.requestFocus(); 

...右後的setContentView()。就按鈕而言,這是有效的。該botton得到了重點和EditText不再有焦點,但鍵盤仍然在那裏。最終我擺脫了鍵盤通過

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

但很明顯,我的關於EditText焦點的理論是錯誤的。那麼是否有人可以解釋一下鍵盤顯示的「規則」,或者是這些規則的鏈接?提前致謝!

回答

0

默認情況下,如果您沒有在佈局的XML中定義焦點的任何內容,則默認情況下,第一個EditText將獲得焦點。

檢查this回答獲取更多信息。如果您不希望鍵盤顯示出來,而不是忽略鍵盤,則應該使用此解決方案。

+0

那麼你是說即使我把焦點放在代碼中的按鈕上,它忽略了這一點,因爲焦點沒有在XML中指定? – user316117 2013-03-15 13:42:38

+0

不,我只是說這是一個更好的解決方案,指定在XML上,而不是讓Android在默認情況下專注於第一個EditText,然後以編程方式更改它。 – Edgar 2013-03-15 15:35:30