Android軟鍵盤顯示模式及開啟和關閉方式

來源:互聯網
上載者:User

Android軟鍵盤顯示模式:

    android定義了一個屬性,名字為windowSoftInputMode, 用它可以讓程式可以控制活動主視窗調整的方式。我們可以在AndroidManifet.xml中對Activity進行設定。如:android:windowSoftInputMode="stateUnchanged|adjustPan"

    該屬性可選的值有兩部分,一部分為軟鍵盤的狀態控制,另一部分是活動主視窗的調整。前一部分本文不做討論,請讀者自行查閱android文檔。
    模式一,壓縮模式
    windowSoftInputMode的值如果設定為adjustResize,那麼該Activity主視窗總是被調整大小以便留出軟鍵盤的空間。

我們通過一段代碼來測試一下,當我們設定了該屬性後,彈出IME時,系統做了什麼。

 模式二,平移模式
    windowSoftInputMode的值如果設定為adjustPan,那麼該Activity主視窗並不調整螢幕的大小以便留出軟鍵盤的空間。相反,當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為使用者可能關閉軟鍵盤以便獲得與被覆蓋內容的互動操作。
    上面的例子中,我們將AndroidManifest.xml的屬性變更:android: windowSoftInputMode = "adjustPan"

模式三 自動模式
    當屬性windowSoftInputMode被設定為adjustUspecified時,它不被指定是否該Activity主視窗調整大小以便留出軟鍵盤的空間,或是否視窗上的內容得到螢幕上當前的焦點是可見的。系統將自動選擇這些模式中一種主要依賴於是否視窗的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個視窗將調整大小,這樣的假設可以使滾動視窗的內容在一個較小的地區中可見的。這個是主視窗預設的行為設定。

    也就是說,系統自動決定是採用平移模式還是壓縮模式,決定因素在於內容是否可以滾動。  

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); }


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.