Android 畫面裡的 EditText 被 Focus 時
會自動彈出鍵盤
這是方便使用者習慣的設計
不過筆者在開發時發現
有時候方便過頭了
原因
一開始進入有 EditText 的頁面時
EditText 會自動 Focus 及彈出鍵盤
這就會造成困懮
因為使用者進入頁面時
不一定是要輸入資料
可能只是看資料而已
而且鍵盤會佔住一大半的畫面
解決方法一(失敗)
網路上許多解答都說在最外層的 Element
加上兩個屬性
1 2 | android:focusable="true" android:focusableInTouchMode="true" |
即可取消自動 Focus
避免彈出鍵盤
不過筆者試了好幾次都是失敗
設定後不只 Focus 被取消
連 EditText 都不能點
猜想可能是 Android 版本不同的關係
解決方法二(成功)
後來轉一個方向
朝彈出鍵盤下手
找到一個 windowSoftInputMode 屬性
可以控制鍵盤的狀態
就算進入頁面 EditText 被 Focus
鍵盤也不會彈出來
AndroidManifest.xml
1 2 3 4 | < activity android:name = ".MainActivity" android:label = "@string/title_activity_main" android:windowSoftInputMode = "stateHidden" > |
修改前,進入頁面會彈出鍵盤
修改後,進入頁面不會彈出鍵盤
點擊 EditText 才會彈出鍵盤