Android软键盘问题,输入焦点

时间:2015-08-11 09:23:20

标签: android cordova phonegap-build android-softkeyboard

我有一个问题,android软键盘在焦点时重叠输入字段。我尝试了各种解决方案但无济于事。我的应用程序是使用phonegap构建的我试图将android:windowSoftInputMode更改为各种解决方案,但一切都不起作用。这些是我的问题

1)除非输入,否则登录屏幕输入字段在对焦时不会聚焦到屏幕中央。这是android:windowSoftInputMode =“adjustPan”。

2)如果android:windowSoftInputMode =“adjustResize”,输入字段确实进入屏幕的中心,但只有在键入时才会进入,这也会打破由键盘向上推的底部导航栏的布局。

有没有人对我该做什么有任何建议?

2 个答案:

答案 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;
}
}