在Android 進入Activity禁止彈出軟鍵盤輸入法及stateHidden和stateAlwaysHidden的區別這篇文章中我們通過設置Activity的android:windowSoftInputMode屬性爲stateHidden或者stateAlwaysHidden實現了進入Activity不馬上彈出軟鍵盤的功能,今天我們介紹另一種方法,通過父佈局搶佔Edittext焦點,從而不然軟鍵盤彈出。
實現代碼如下所示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:focusable="true">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
馬上在我的魅族MX5手機上運行一下,發現軟鍵盤是收起來了,但是卻是在彈出後馬上又收起來的。看起來就是軟鍵盤閃了一下馬上消失,這樣的用戶體驗是很不好的。
既然這樣的體驗不好爲什麼網上一搜還是有很多人推薦這樣的方法,唯一的可能就是他們看到的結果和我不一樣,他們的手機上的運行結果可能確實是軟鍵盤沒有彈出來。
我馬上用用Android模擬器試了下,發現模擬器上確實未彈出軟鍵盤,不像在MX5手機上那樣彈出又馬上消失。
總結
這種方法並不能保證對所有型號手機使用,所以不推薦使用。還是推薦Android官方推薦的方法,通過設置android:windowSoftInputMode屬性來實現,具體參考這篇文章Android 進入Activity禁止彈出軟鍵盤輸入法及stateHidden和stateAlwaysHidden的區別。