我有一个显示在里面的表单http://ionicframework.com/docs/api/service/$ionicPopup/。问题是,当光标放置在最终输入(文本区域)内时,键盘会显示,但输入不会滚动回视图中,并且会被键盘遮挡。用户必须向下滚动。
我使用的是安卓设备。
文件显示
Ionic将试图通过将键盘滚动到视图中来防止键盘在出现时遮挡输入和可聚焦元素。为了实现这一点,任何可聚焦元素都必须在滚动视图或具有滚动视图的指令(如Content)中。
如果我用离子内容标签包装表单,输入框确实会滚动回视图,但我的布局出现了问题,正在寻找另一个解决方案。
更新:清单看起来像
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="myAwesomeApp" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true">
<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="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="me.apla.cordova.AppPreferencesActivity" />
<activity android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden" android:exported="false" android:name="com.google.zxing.client.android.CaptureActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/share_name" android:name="com.google.zxing.client.android.encode.EncodeActivity">
<intent-filter>
<action android:name="com.phonegap.plugins.barcodescanner.ENCODE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/share_name" android:name="com.google.zxing.client.android.HelpActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
将其添加到AndroidMenifest 中的活动中
android:configChanges="keyboardHidden|orientation|screenSize"
如果您使用的是cordova键盘,则可以在弹出窗口打开时使用cordova.plugins.Keyboard.disableScroll(false);
,在关闭时使用cordova.plugins.Keyboard.disableScroll(true);
。这样布局可以在使用弹出窗口的情况下处理重叠的键盘。
您必须将清单中的android:windowSoftInputMode="adjustResize"
设置为Application
或Activity
。
并检查您是否在"活动"中设置了类似getWindow().setSoftInputMode(...)
的内容。如果是,请删除这些线路。