我的android应用程序想要的效果是有一个带有输入框和内容的webview。 当用户点击键盘时,键盘会将输入框向上推,但不会调整主要内容的大小,只是覆盖在其上面,如下图所示。
我遇到的问题是键盘盖住了输入框,并没有将其向上推。
目前这是一个 cordova android 应用程序。 在清单中,我已经配置了
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleInstance" android:name="GigJam" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustPan">
也在 config.xml 中:
<preference name="Fullscreen" value="false" />
我使用 android:windowSoftInputMode="adjustPan" 来防止屏幕调整大小,这正是我想要的,因为我不希望内容被压扁。 我还尝试将输入框的 css 配置为固定且绝对(基本上绑定到 webview 的底部。
根据我的理解,当键盘从输入框中的编辑中弹出时,它也会将框向上推,因为输入框受到 webview 的限制,而 webview 也会被向上推。
任何建议表示赞赏, 谢谢, D
Android 有一个我监听的键盘事件。 当显示/隐藏被触发时,我抓取活动输入组件,并按照键盘高度的大小转换 y 轴上的框,键盘高度可以从侦听器中的事件中抓取。 当节目触发时我会变回来。
注意:需要为 android:windowSoftInputMode 禁用调整大小并设置为“adjustPan”
使用此行:
getActivity()
.getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
在 AndroidManifest.xml 中使用 webview 将
android:windowSoftInputMode="adjustResize"
添加到 Activity
例如:
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize" />
我用javascript/jquery焦点和模糊事件解决了这个问题! 当用户聚焦某个元素(页面底部的元素)时,元素会隐藏,而当模糊时,所有元素都会显示!现在开始工作了。
$(document).ready(function(){
$('#input6').on('focus',function(){
$('#input1').parent().hide();
$('#input2').parent().hide();
$('#input3').parent().hide();
$('#input4').parent().hide();
$('#input5').parent().hide();
})
$('#input6').on('blur',function(){
$('#input1').parent().show();
$('#input2').parent().show();
$('#input3').parent().show();
$('#input4').parent().show();
$('#input5').parent().show();
})
})