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