Android 進入Activity時如何禁止彈出軟鍵盤輸入法
前言:
在開發中經常會遇到這樣的問題,進入一個含Edittext的Activity後總是會自動彈出軟件盤。但是有時候我們又不想讓它彈出,因為影響美觀,而且用戶可能也會反感。最好的做法是剛進入時不讓彈出,在用戶輸入的時候才讓彈出,把主動權交個用戶是對用戶最大的尊重。
禁止彈出軟鍵盤輸入法
代碼:
<activity android:name=".MainActivity" android:windowSoftInputMode="stateHidden"/>
發現用stateAlwaysHidden也可以禁止彈出軟鍵盤
<activity android:name=".MainActivity" android:windowSoftInputMode="stateAlwaysHidden"/>
stateHidden和stateAlwaysHidden的區別
既然stateHidden和stateAlwaysHidden都可以實現禁止彈出軟鍵盤,那這兩者到底有什麼區別呢?網上看很多人都說得不清不楚,還不如自己上Android官網看最權威
發現官網的說明還是有點晦澀難懂的,我以我的理解說明下:
- stateHidden:當用戶進入Activity後保證是隱藏軟鍵盤的,但是如果是從另一個頁面返回該頁面就不能保證瞭。比如說用戶進入A頁面,然後在輸入框輸入內容,未收起軟鍵盤直接進入B頁面,再從B頁面返回A頁面,此時A頁面中軟鍵盤還是顯示的。又或者是用戶由A頁面進入B頁面,在B頁面彈出軟鍵盤,未收起直接返回A頁面,此時A頁面中軟鍵盤還是顯示的。
- stateAlwaysHidden:當用戶剛進入Activity後軟鍵盤也是隱藏的。與stateHidden的區別是,還是以上面的例子來說明,比如說用戶進入A頁面,然後在輸入框輸入內容,未收起軟鍵盤直接進入B頁面,再從B頁面返回A頁面,此時A頁面中軟鍵盤是收起來的。又或者是用戶由A頁面進入B頁面,在B頁面彈出軟鍵盤,未收起直接返回A頁面,此時A頁面中軟鍵盤是收起來的。
代碼中設置softInputMode
當然,我們也可以在Activity的onCreate中設置softInputMode,如下代碼所示,和在Manifest中設置是等價的
// 等價於android:windowSoftInputMode="stateHidden" getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); // 等價於android:windowSoftInputMode="stateAlwaysHidden" getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
到此這篇關於Android 進入Activity時如何禁止彈出軟鍵盤輸入法的文章就介紹到這瞭,更多相關Android 進入Activity 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 關於Android輸入法彈窗bug的優雅處理
- Android WebView輸入框被檔問題升級解析
- Android中Activity組件實例介紹
- Android應用內懸浮窗Activity的簡單實現
- Android實現佈局全屏