解決方法
方法一:
在你的activity中的oncreate中setContentView之前寫上這個(gè)代碼
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二:
如果想activity頁(yè)面整體上移,在項(xiàng)目的AndroidManifest.xml文件中界面對(duì)應(yīng)的<activity>里加入
android:windowSoftInputMode="stateVisible|adjustResize"
如果想鍵盤覆蓋在activity上,在對(duì)應(yīng)的<activity>中加入
android:windowSoftInputMode="adjustPan"
方法三:
把頂級(jí)的layout替換成ScrollView,或者說在頂級(jí)的Layout上面再加一層ScrollView的封裝。這樣就會(huì)把軟鍵盤和輸入框一起滾動(dòng)了,軟鍵盤會(huì)一直處于底部。
主窗口與軟鍵盤窗口交互設(shè)置值如下:
| 將覆蓋在主題中設(shè)置的值 | 值描述 |
|---|---|
| "stateUnspecified" | 軟鍵盤的狀態(tài)(是否它是隱藏或可見)沒有被指定。系統(tǒng)將選擇一個(gè)合適的狀態(tài)或依賴于主題的設(shè)置。這個(gè)是為了軟件盤行為默認(rèn)的設(shè)置。 |
| "stateUnchanged" | 軟鍵盤被保持無論它上次是什么狀態(tài),是否可見或隱藏,當(dāng)主窗口出現(xiàn)在前面時(shí)。 |
| "stateHidden" | 當(dāng)用戶選擇該Activity時(shí),軟鍵盤被隱藏——也就是,當(dāng)用戶確定導(dǎo)航到該Activity時(shí),而不是返回到它由于離開另一個(gè)Activity。 |
| "stateAlwaysHidden" | 軟鍵盤總是被隱藏的,當(dāng)該Activity主窗口獲取焦點(diǎn)時(shí)。 |
| "stateVisible" | 軟鍵盤是可見的,當(dāng)那個(gè)是正常合適的時(shí)(當(dāng)用戶導(dǎo)航到Activity主窗口時(shí))。 |
| "stateAlwaysVisible" | 當(dāng)用戶選擇這個(gè)Activity時(shí),軟鍵盤是可見的——也就是,也就是,當(dāng)用戶確定導(dǎo)航到該Activity時(shí),而不是返回到它由于離開另一個(gè)Activity。 |
| "adjustUnspecified" | 它不被指定是否該 Activity主窗口調(diào)整大小以便留出軟鍵盤的空間,或是否窗口上的內(nèi)容得到屏幕上當(dāng)前的焦點(diǎn)是可見的。系統(tǒng)將自動(dòng)選擇這些模式中一種主要依賴于是否窗口的內(nèi)容有任何布局視圖能夠滾動(dòng)他們的內(nèi)容。如果有這樣的一個(gè)視圖,這個(gè)窗口將調(diào)整大小,這樣的假設(shè)可以使?jié)L動(dòng)窗口的內(nèi)容在一個(gè)較小的區(qū)域中可見的。這個(gè)是主窗口默認(rèn)的行為設(shè)置。 |
| "adjustResize" | 該Activity主窗口總是被調(diào)整屏幕的大小以便留出軟鍵盤的空間 |
| "adjustPan" | 該Activity主窗口并不調(diào)整屏幕的大小以便留出軟鍵盤的空間。相反,當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤覆蓋和用戶能總是看到輸入內(nèi)容的部分。這個(gè)通常是不期望比調(diào)整大小,因?yàn)橛脩艨赡荜P(guān)閉軟鍵盤以便獲得與被覆蓋內(nèi)容的交互操作。 |