開啟新介面時,EditText焦點自動彈出軟鍵盤
對於一點點空閒時間,看看文章,竟然想起以前的一個問題,趕緊修改起來。 Android新啟動Activity時,dialog或者其他窗體中包含EditText,新啟動的activity的焦點預設在EditText上,這時候安卓系統會自動彈出軟鍵盤。這會導致擠壓activity介面,影響美觀。解決:
一、目的效果:activity開啟,軟鍵盤不自動開啟,焦點不在editText上面。當點選editText,再開啟軟鍵盤 具體方法:在onCreate()方法中將焦點放在另一個view上. view使用requestFocus()焦點,但是如果讓button或者textView之類控制元件直接使用requestFocus()方法,則無法獲取焦點,焦點會依然在editText上。 只能在使用View的requestFocus()方法之前呼叫下面2個方法,view才可獲取焦點: view.setFocusable(true); view.setFocusableInTouchMode(true); 然後呼叫 requestFocus()即可獲取焦點。
二、目的效果:activity開啟,軟鍵盤不自動開啟,焦點落在editText上面。當點選editText,再開啟軟鍵盤
具體方法:在Activity中OnCreate方法裡面加下面這句程式碼
getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 或者
在AndroidManifest.xml中該activity處新增android:windowSoftInputMode屬性 eg. <activity android:name="SelectPartsActivity" android:screenOrientation="landscape" android:windowSoftInputMode="stateAlwaysHidden" />