我有一个问题,android软键盘在焦点时重叠输入字段。我尝试了各种解决方案但无济于事。我的应用程序是使用phonegap构建的我试图将android:windowSoftInputMode更改为各种解决方案,但一切都不起作用。这些是我的问题
1)除非输入,否则登录屏幕输入字段在对焦时不会聚焦到屏幕中央。这是android:windowSoftInputMode =“adjustPan”。
2)如果android:windowSoftInputMode =“adjustResize”,输入字段确实进入屏幕的中心,但只有在键入时才会进入,这也会打破由键盘向上推的底部导航栏的布局。
有没有人对我该做什么有任何建议?
答案 0 :(得分:0)
我遇到了同样的问题。这是一个解决方法:
安装com.ionic.keyboard插件
在config.xml中设置
<preference name="fullscreen" value="true" />
将其添加到页面底部
<div id="kbs" class="keyboardspace"></div>
为周围的元素提供id&#34; frame&#34;
将此添加到您的css
.keyboardspace {
width: 100%;
height: 0;
}
现在注册这两个事件监听器(我在这里使用jquery,但也应该没有)
var window = angular.element($window);
window.on('native.keyboardshow', function (e) {
$("#kbs").height(e.keyboardHeight);
var focus = $(document.activeElement);
var pos = focus.offset();
var bottom = pos.top + focus.height() + 10;
var maxpos = $($window).height() - e.keyboardHeight;
if (bottom > maxpos) {
$("#frame").scrollTop(bottom - maxpos);
}
});
window.on('native.keyboardhide', function () {
console.log("native.keyboardhide");
$("#kbs").height(0);
});
请注意,框架必须可滚动才能生效。
答案 1 :(得分:0)
您在Softkeyboard.java中使用此代码:
@override
public void onComputeInsets(Insets outInsets){
super.onComputeInsets(outInsets);
if(!isFullscreenMode()){
outInsets.contentTopInsets = outInsets.visibleTopInsets;
}
}