首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android上的Phonegap :使用键盘时布局可滚动

Android上的Phonegap :使用键盘时布局可滚动
EN

Stack Overflow用户
提问于 2013-07-23 12:08:15
回答 1查看 1.5K关注 0票数 2

我刚开始在安卓和WindowsPhone上用Maqetta创建一个移动应用程序。该应用程序包括一些带有文本输入的网页,所以我需要软键盘来工作。

我的问题是,键盘在这两个操作系统上的反应完全不同。在windows上,当我单击一个文本框时,键盘会显示并覆盖它下面的所有东西。要到达其他文本框,我仍然可以在显示我的网站并选择它的字段中滚动。此外,这是相当重要的,我的网站没有压缩。这正是我想要的。

在Android上,事情要复杂一些。在做了大量的研究之后,我偶然发现了这些人:

android:windowSoftInputMode="adjustResize“和android:windowSoftInputMode="adjustPan”

我两者都试过了,但都不符合我的需要。adjustRezise压缩我的网站(因为网站高度:100%),adjustPan覆盖它下面的所有内容,没有任何可能到达它(除了关闭键盘,重新打开它为每个文本框//和不得不键入而没有看到你所键入的)。

我也听说过ScrollViews之类的东西,但由于我对这个话题并不熟悉,我不知道它是什么,也不知道如何使用它,因为我关注的是应用程序的html和css部分,所以如果您有任何技巧,请记住,这可能需要一些信息才能让我理解。;)

如果你们中的一个能帮我解决这个问题,我会很高兴的。我希望有一个解决办法。

EN

回答 1

Stack Overflow用户

发布于 2015-10-06 17:15:30

设定高度: 150%不适合我。它使页面滚动,即使没有足够的内容滚动。以下解决方案( CSS和Javascript的混合)适用于:

  1. 在CSS中:我保持了app/HTML的高度:100%,溢出-y: auto; #容器{高度: 100%;溢出-y: auto;}
  2. 检测焦点文本区域或输入,然后等待一段时间直到键盘显示,最后滚动页面以达到焦点输入。 $(“textarea”).focus(函数(E){ var容器=$(‘#容器’),scrollTo = $('#textarea');setTimeout(函数(函数(){ container.animate({ scrollTop: scrollTo.offset().top -container.offset(.top+ container.scrollTop() });}; 当键盘被隐藏时,文本区域保持焦点,因此如果再次单击,键盘将显示,容器需要再次滚动以显示输入。 $(“#textarea”).click(函数(E){ e.stopPropagation();var容器=$(‘#容器’),//要滚动的容器元素,包含输入scrollTo =$(‘textarea’);setTimeout(函数(){ container.animate({ scrollTop: scrollTo.offset:.top-container.offset(.top+ container.scrollTop() });};};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17809804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档