【问题标题】:How do I prevent page from shifting up when soft keyboard appears over text field on Android device?当软键盘出现在 Android 设备上的文本字段上时,如何防止页面上移?
【发布时间】:2013-05-09 04:37:33
【问题描述】:
我正在开发一个网络应用程序,目前无非是 Javascript、HTML 和 CSS。我有一个靠近页面底部的文本框,当单击以在 Android 上调出软键盘时,它会将整个页面向上移动,在视口之外,以便在键盘上输入文本时可见。但是之后,整个页面保持向上移动,并且无法恢复到原来的位置。
这都是客户端代码,因此按照以前的帖子中的建议将任何属性添加到 XML 似乎并不可行。任何帮助表示赞赏。
【问题讨论】:
标签:
android
web-applications
android-webview
tablet
【解决方案1】:
在 javascript 事件方面,Android 键盘与 iOS 键盘的工作方式不同。将 Android 键盘视为向上滑动并挤压页面内容。发生这种情况时,它通常会导致 javascript 'orientationchange' 事件。如果您有一个 javascript 事件侦听器,您将做一些可能不想要的事情。解决此问题的一种方法是使用 @media screen 调整 CSS。
@media screen and (max-aspect-ratio: 13/9) {
// Put your portrait settings here
}
@media screen and (min-aspect-ratio: 13/9) {
// Put your landscape settings here
}
在 iOS 中,您可以认为键盘在页面顶部滑动不会导致“orientationchange”事件。