Android SDK目前提供的軟鍵盤彈出模式接口只有兩種:
一是彈出時自動回沖界面,將所有元素上頂;
一種則是不重繪界面,直接將控件元素遮住;
1. ionic 中彈出鍵盤遮擋住輸入框(覆蓋住頁面的內容):
需要在ionic platform add android 添加平台之后,在生成的
AndroidManifest.xml文件中找到以下代碼:
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/activity_name"
android:launchMode="singleTop"
android:name="MainActivity"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
android:windowSoftInputMode="adjustPan|stateHidden"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
其中的設置為:android:windowSoftInputMode="adjustPan|stateHidden" --軟鍵盤就可以將內容覆蓋了,而不是頂將所有內容頂上去;
此時如果底部有輸入框,聚焦的時候,彈出將會遮擋住輸入的內容,不方便查看,所以還要在$ionicPlatform.ready中設置:
ionic.Platform.isFullScreen = true;
djustResize為Ionic推薦設置,但是如果處於一些原因你使用了
adjustPan
,那么你需要設置
ionic.Platform.isFullScreen = true;
<activity android:windowSoftInputMode="adjustResize">
2. 軟鍵盤彈出后,將頁面圖片的高度壓縮問題:(我的登錄頁面是用了一整張圖片)
AndroidManifest.xml文件中界面對應的<activity>里加入
android:windowSoftInputMode=
"adjustPan"
鍵盤就會覆蓋屏幕
android:windowSoftInputMode=
"stateVisible|adjustResize"
屏幕整體上移
android:windowSoftInputMode="adjustPan|stateHidden" 軟鍵盤彈出,界面布局不變,這是解決彈出軟鍵盤,界面整體被壓縮的方式