android 代碼開啟和關閉軟鍵盤


Android軟鍵盤顯示模式:

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

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

我們通過一段代碼來測試一下,當我們設置了該屬性后,彈出輸入法時,系統做了什么。

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

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

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


Android軟鍵盤打開和關閉方式:

切換軟鍵盤:

[java] view plaincopy
  
  1. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);    
  2. //得到InputMethodManager的實例  
  3. if (imm.isActive()) {  
  4. //如果開啟  
  5. imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);   
  6. //關閉軟鍵盤,開啟方法相同,這個方法是切換開啟與關閉狀態的  
  7. }  

關閉軟鍵盤
[java] view plaincopy
  1. if(getCurrentFocus()!=null)  
  2.             {  
  3.                 ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))  
  4.                 .hideSoftInputFromWindow(getCurrentFocus()  
  5.                         .getWindowToken(),  
  6.                         InputMethodManager.HIDE_NOT_ALWAYS);   
  7.             }  

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: