【发布时间】:2013-08-14 19:34:35
【问题描述】:
我正在构建一个非常基本的 web 应用程序来显示轮渡时刻表。
我正在使用 phonegap 将其移植到 Android 上的“本机”应用程序中,但滚动有点麻烦。
它可以在设备上的 Chrome 以及 android 浏览器上完美运行。我已经在几种设备上进行了测试,它们在浏览器中都运行良好。一旦我将项目放入Phonegap,滚动就会变得非常“断断续续”并且会跳动并粘住。我添加了一个视频链接来向您展示这种行为:
我会简要解释一下它是如何工作的:
当我们在视图中切换内容时,我们使用 translate3d CSS 方法进行转换,以避免使用页面转换。因此,我们不会滚动实际页面,而是滚动单个内容 div,以避免在内容视图之间切换时出现奇怪的滚动错误。基本上,我们在一个页面上有三个“内容视图”,当我们想要切换视图时它们会切换出来。
这是应用程序的链接:
我尝试过的事情
我们正在使用“overscroll:scroll;”这些内容 div 之一,我知道它与 Android 2.3 之前的版本有些不兼容,但现在应该可以了。
我们尝试了一些大型库,例如 iScroll 和 Scrollable,但都无济于事。
我已尝试阻止 touchmove 的默认操作。
我们使用 Zepto 的触摸模块编写了正确的触摸事件。
我已经在从 Nexus one (4.0.4) 到 Nexus 7 (4.3) 的设备上进行了测试,所有这些设备上的情况都是一样的。
任何帮助将不胜感激
我已经为此苦苦挣扎了一段时间,我似乎无法在互联网上找到任何与此“断断续续”的滚动错误有关的内容。
编辑:这是从安装到滚动错误发生时的 logcat: http://pastebin.com/Aa7mDeAX
【问题讨论】:
-
Android Webview 不支持 Chrome 浏览器的完整功能集。检查/发布您的 logcat 以查看是否出现任何有用的消息。
-
@MorrisonChang 这是从安装到滚动错误发生时未过滤的 LogCat...我还是 Android 开发新手,所以我真的不知道这意味着什么:pastebin.com/Aa7mDeAX
-
我在您的日志中没有看到任何内容,也许其他人看到了。您可能想尝试在您的应用程序中关闭硬件加速,以了解它对应用程序的影响。在 Android WebView 上查看 Google IO 会话:developers.google.com/events/io/2012/sessions/gooio2012/122
标签: javascript android css cordova scroll