Ionic3學(xué)習(xí)筆記(九)關(guān)于 Android 端軟鍵盤彈出后界面被壓縮的問題

本文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)標(biāo)明出處

今天做了一個(gè)如下圖所示的頁面。

Screenshot

iOS 端毫無 bug,Android 端卻出現(xiàn)了問題。當(dāng)軟鍵盤彈出后,Android 端的 tabs 移到了軟鍵盤的上面,再仔細(xì)一看,整個(gè)界面都被壓扁了,輸入框也不知道去哪兒了。

于是去翻 Ionic Native - Keyboard 文檔,并未發(fā)現(xiàn)有能解決該問題的方法。于是又?想到是不是 android:windowSoftInputMode 屬性出了問題,打開 AndroidManifest.xml,發(fā)現(xiàn) Ionic 3 將 android:windowSoftInputMode 屬性默認(rèn)設(shè)置為 adjustResize 值,將屬性值修改為 adjustPan|stateHidden,問題完美解決。

接下來就詳解一下 android:windowSoftInputMode 屬性。

屬性值一共有以下9個(gè):stateUnspecified、stateUnchanged、stateHiddenstateAlwaysHidden、stateVisiblestateAlwaysVisible、adjustUnspecifiedadjustResize、adjustPan。

stateUnspecified
未指定軟鍵盤的狀態(tài),系統(tǒng)將自動(dòng)選擇一個(gè)合適的狀態(tài)或依賴于主題中的設(shè)置。

stateUnchanged
當(dāng)前界面的軟鍵盤狀態(tài)取決于上一個(gè)界面的軟鍵盤狀態(tài)。

stateHidden
用戶選擇 Activity 時(shí),軟鍵盤總是被隱藏。

stateAlwaysHidden
當(dāng)該 Activity 主窗口有輸入需求時(shí),軟鍵盤總是被隱藏。

stateVisible
軟鍵盤通??梢?。

stateAlwaysVisible
用戶選擇 Activity 時(shí),軟鍵盤總是可見。

adjustUnspecified
未指定軟鍵盤與界面內(nèi)容之間的顯示關(guān)系。

adjustResize
該 Activity 總是調(diào)整屏幕的大小以便留出軟鍵盤的空間。

adjustPan
當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤覆蓋和用戶總能看到輸入的內(nèi)容。

如有不當(dāng)之處,請(qǐng)予指正,謝謝~

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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