進入含有EditText的Activity時,不自動彈出虛擬鍵盤


Android的Activity放置EditText之後,如果沒有做特別的調整,每次一進入Activity,EditText都會自動取得焦點,然後彈出虛擬鍵盤,造成畫面變得擁擠。雖然Android這樣的設計是為了減少使用者點擊螢幕的次數,但是並不是在所有情況下一進入Activity都需要自動彈出虛擬鍵盤,使用者可能只是要看資料而已(例如看聊天訊息)。

進入含有EditText的Activity時,不自動彈出虛擬鍵盤

解決一進入Activity就自動彈出虛擬鍵盤

只要在Activity的onCreate階段,加上以下程式碼即可。

或是在AndroidManifest.xml中,設定Activity的android:windowSoftInputMode屬性,如下:

設定windowSoftInputMode屬性為State Hidden之後,進入Activity時,EditText依然會取得焦點,但不會立刻彈出虛擬鍵盤,還要再點擊一次EditText才會彈出鍵盤。問題成功解決了!

解決一彈出Dialog又再自動彈出虛擬鍵盤

Dialog中若有EditText,也會遇到和Activity一樣,在出現Dialog的同時又再自動彈出虛擬鍵盤的狀況。解決方法跟Activity相同,取得Dialog的Window後,使用setSoftInputMode方法來設定隱藏鍵盤,程式碼如下:

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章