1. 程式人生 > >Ionic3學習筆記(九)關於 Android 端軟鍵盤彈出後介面被壓縮的問題

Ionic3學習筆記(九)關於 Android 端軟鍵盤彈出後介面被壓縮的問題

本文為原創文章,轉載請標明出處

今天做了一個如下圖所示的頁面。

Screenshot

iOS 端毫無 bug,Android 端卻出現了問題。當軟鍵盤彈出後,Android 端的 tabs 移到了軟鍵盤的上面,再仔細一看,整個介面都被壓扁了,輸入框也不知道去哪兒了。

於是去翻 Ionic Native - Keyboard 文件,並未發現有能解決該問題的方法。於是又想到是不是 android:windowSoftInputMode 屬性出了問題,開啟 AndroidManifest.xml,發現 Ionic 3 將 android:windowSoftInputMode 屬性預設設定為 adjustResize

值,將屬性值修改為 adjustPan|stateHidden,問題完美解決。

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

屬性值一共有以下9個:stateUnspecifiedstateUnchangedstateHiddenstateAlwaysHiddenstateVisiblestateAlwaysVisibleadjustUnspecifiedadjustResizeadjustPan

stateUnspecified
未指定軟鍵盤的狀態,系統將自動選擇一個合適的狀態或依賴於主題中的設定。

stateUnchanged


當前介面的軟鍵盤狀態取決於上一個介面的軟鍵盤狀態。

stateHidden
使用者選擇 Activity 時,軟鍵盤總是被隱藏。

stateAlwaysHidden
當該 Activity 主視窗有輸入需求時,軟鍵盤總是被隱藏。

stateVisible
軟鍵盤通常可見。

stateAlwaysVisible
使用者選擇 Activity 時,軟鍵盤總是可見。

adjustUnspecified
未指定軟鍵盤與介面內容之間的顯示關係。

adjustResize
該 Activity 總是調整螢幕的大小以便留出軟鍵盤的空間。

adjustPan
當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者總能看到輸入的內容。

如有不當之處,請予指正,謝謝~