我有需要输入手机触控键盘的游戏。它的显示有问题,每当键盘出现在文本输入焦点时,我所有的元素位置:绝对都搞砸了。
是否有一个插件可以让移动键盘始终显示,以便重新定位所有元素,或者我需要更改css以制作元素,以便在键盘显示时不会搞砸?
我该如何实现?
这是元素css之一:
#mixer{
position: absolute;
bottom:29%;
left:25%;
width: 234px;
height: 210px;
background: transparent url(img/mixer.png) 0 50px no-repeat;
}
注意:我在Android环境中使用Jquery mobile,phonegap。
答案 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”参数添加到您的活动代码中。
希望它有所帮助。