键盘显示乱搞元素的位置

时间:2012-11-05 14:12:03

标签: android css android-layout cordova keyboard

我有需要输入手机触控键盘的游戏。它的显示有问题,每当键盘出现在文本输入焦点时,我所有的元素位置:绝对都搞砸了。

是否有一个插件可以让移动键盘始终显示,以便重新定位所有元素,或者我需要更改css以制作元素,以便在键盘显示时不会搞砸?

我该如何实现?

这是元素css之一:

#mixer{  
    position: absolute;  
    bottom:29%;
    left:25%;
    width: 234px;  
    height: 210px;  
    background: transparent url(img/mixer.png) 0 50px no-repeat;  
} 

enter image description here

注意:我在Android环境中使用Jquery mobile,phonegap。

5 个答案:

答案 0 :(得分:18)

在AndroidManifest.xml中,使用键盘在活动下添加以下行:

android:windowSoftInputMode="adjustNothing"

答案 1 :(得分:1)

我认为你的问题是你的Bottom属性设置为“在这种情况下”29%。 您可能希望将其设置为绝对TOP而不是底部。

这样它将从顶部推动而不是在底部,在这种情况下是键盘。

所以你想要它在底部的29%,100 - 29 = 71 移除底部29%并将其更改为最高71%。

答案 2 :(得分:1)

收听show / hide软键盘事件。关于SO的答案有一个代码示例:

Softkeyboard event Listener in Android

当软键盘处于显示状态时,请为游戏使用单独的“键盘显示”CSS。当隐藏软键盘时,恢复到之前的'键盘关闭'CSS。

之前关于SO的Q& A处理类似情况:

phonegap application layout issue with soft keyboard in Android 2.3.6 and in iPhone 5.0

答案 3 :(得分:1)

我在iPad应用程序而不是Android上遇到过这个问题,但它看起来像是同样的问题。

jQuery mobile在大小改变时用javascript设置页面高度 - 任何与页面底部对齐的内容都会在html中向上移动,同时操作系统向上滚动整个视图以保持输入的先前位置可见

我修复了一些使浏览器忽略高度设置的css问题。它还使方向变化更加顺畅。

.ui-mobile, .ui-mobile .ui-page {
    min-height: 100% !important;
    }

答案 4 :(得分:1)

查看这些链接 -

http://android-developers.blogspot.in/2009/04/updating-applications-for-on-screen.html

http://developer.android.com/reference/android/R.attr.html#windowSoftInputMode

尝试将manifest android:windowSoftInputMode =“adjustResize”参数添加到您的活动代码中。

希望它有所帮助。