解決方法
方法一:
在你的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的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤會一直處于底部。
主窗口與軟鍵盤窗口交互設置值如下:
將覆蓋在主題中設置的值 | 值描述 |
---|---|
"stateUnspecified" | 軟鍵盤的狀態(是否它是隱藏或可見)沒有被指定。系統將選擇一個合適的狀態或依賴于主題的設置。這個是為了軟件盤行為默認的設置。 |
"stateUnchanged" | 軟鍵盤被保持無論它上次是什么狀態,是否可見或隱藏,當主窗口出現在前面時。 |
"stateHidden" | 當用戶選擇該Activity時,軟鍵盤被隱藏——也就是,當用戶確定導航到該Activity時,而不是返回到它由于離開另一個Activity。 |
"stateAlwaysHidden" | 軟鍵盤總是被隱藏的,當該Activity主窗口獲取焦點時。 |
"stateVisible" | 軟鍵盤是可見的,當那個是正常合適的時(當用戶導航到Activity主窗口時)。 |
"stateAlwaysVisible" | 當用戶選擇這個Activity時,軟鍵盤是可見的——也就是,也就是,當用戶確定導航到該Activity時,而不是返回到它由于離開另一個Activity。 |
"adjustUnspecified" | 它不被指定是否該 Activity主窗口調整大小以便留出軟鍵盤的空間,或是否窗口上的內容得到屏幕上當前的焦點是可見的。系統將自動選擇這些模式中一種主要依賴于是否窗口的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個窗口將調整大小,這樣的假設可以使滾動窗口的內容在一個較小的區域中可見的。這個是主窗口默認的行為設置。 |
"adjustResize" | 該Activity主窗口總是被調整屏幕的大小以便留出軟鍵盤的空間 |
"adjustPan" | 該Activity主窗口并不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。 |