Android軟鍵盤顯示模式:
android定義了一個屬性,名字為windowSoftInputMode, 用它可以讓程序可以控制活動主窗口調整的方式。我們可以在AndroidManifet.xml中對Activity進行設置。如:android:windowSoftInputMode="stateUnchanged|adjustPan"
該屬性可選的值有兩部分,一部分為軟鍵盤的狀態控制,另一部分是活動主窗口的調整。前一部分本文不做討論,請讀者自行查閱android文檔。我們通過一段代碼來測試一下,當我們設置了該屬性后,彈出輸入法時,系統做了什么。
模式二,平移模式
windowSoftInputMode的值如果設置為adjustPan,那么該Activity主窗口並不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。
上面的例子中,我們將AndroidManifest.xml的屬性進行更改:android: windowSoftInputMode = "adjustPan"
也就是說,系統自動決定是采用平移模式還是壓縮模式,決定因素在於內容是否可以滾動。
Android軟鍵盤打開和關閉方式:
切換軟鍵盤:
- InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
- //得到InputMethodManager的實例
- if (imm.isActive()) {
- //如果開啟
- imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
- //關閉軟鍵盤,開啟方法相同,這個方法是切換開啟與關閉狀態的
- }
關閉軟鍵盤
- if(getCurrentFocus()!=null)
- {
- ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
- .hideSoftInputFromWindow(getCurrentFocus()
- .getWindowToken(),
- InputMethodManager.HIDE_NOT_ALWAYS);
- }
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。