Android軟鍵盤彈出時(shí),不把布局頂上去的解決方法

解決方法

方法一:

在你的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)容的交互操作。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容