Android 彈出軟鍵盤android:windowSoftInputMode設定總結

來源:互聯網
上載者:User

標籤:

當在Android的layout設計裡面如果輸入框過多,則在輸入彈出軟鍵盤的時候,下面的輸入框會有一部分被軟體盤擋住,從而不能擷取焦點輸入。或者是有使用framentlayout懸浮在底部的button也會擋住輸入框。

一、解決辦法

方法一:

在你的activity中的oncreate中setContentView之前寫上這個代碼getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

方法二:
在項目的AndroidManifest.xml檔案中介面對應的<activity>裡加入android:windowSoftInputMode="stateVisible|adjustResize",這樣會讓螢幕整體上移。如果加上的 android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋螢幕。

方法三:

把頂級的layout替換成ScrollView,或者說在頂級的Layout上面再加一層ScrollView的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤會一直處於底部。

總結:

我通常是方法二與方法三一起使用,肯定沒有問題了,方法推薦不這麼用。

不希望遮擋設定activity屬性android:windowSoftInputMode="adjustPan"

希望動態調整高度android:windowSoftInputMode="adjustResize"

 

二、接下來看看,其他屬性值的描述

1、"stateUnspecified"

軟鍵盤的狀態 (是否它是隱藏或可見 )沒有被指定。系統將選擇一個合適的狀態或依賴於主題的設定。

這個是為了軟體盤行為預設的設定。

 

2、"stateUnchanged"

軟鍵盤被保持無論它上次是什麼狀態,是否可見或隱藏,當主視窗出現在前面時。

 

3、"stateHidden"

當使用者選擇該 Activity時,軟鍵盤被隱藏——也就是,當使用者確定導航到該 Activity時,而不是返回到它由於離開另一個 Activity。

 

4、"stateAlwaysHidden"

軟鍵盤總是被隱藏的,當該 Activity主視窗擷取焦點時。

 

5、"stateVisible"

軟鍵盤是可見的,當那個是正常合適的時 (當使用者導航到 Activity主視窗時 )。

 

6、"stateAlwaysVisible"

當使用者選擇這個 Activity時,軟鍵盤是可見的——也就是,也就是,當使用者確定導航到該 Activity時,而不是返回到它由於離開另一個 Activity。

 

7、"adjustUnspecified"

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

 

8、"adjustResize"

該 Activity主視窗總是被調整螢幕的大小以便留出軟鍵盤的空間

 

9、"adjustPan"

該 Activity主視窗並不調整螢幕的大小以便留出軟鍵盤的空間。相反,當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為使用者可能關閉軟鍵盤以便獲得與被覆蓋內容的互動操作。

Android 彈出軟鍵盤android:windowSoftInputMode設定總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.