【发布时间】:2013-08-21 23:34:37
【问题描述】:
在 Netflix 的 Android 应用中,有一个 WebView 几乎覆盖了整个应用的区域。当您从左到右拖动一行时,它将仅滚动该行,并使用良好的惯性滚动来滚动。如果你上下拖动,它会上下滚动整个页面。
我已经设法在 iOS 上复制了这个功能(在 uiWebView 以及 Safari 中),但在 Android 上没有。在 Android 设备上,我所做的任何事情要么滚动非常缓慢,要么您必须非常小心地垂直滚动才能通过触摸行之间的背景区域开始。两者都不可接受。显然,我不想在 javascript 中做滚动动画,因为那太慢了。
我知道 Netflix 使用 WebView 来做这件事,所以....他们使用的是什么技巧?
我尝试过使用 css 属性(用于行 div):
overflow-y: hidden;
-webkit-overflow-scrolling-x: touch
无济于事。
【问题讨论】:
-
据我所知,WebView 只是网页显示的“门户”,其中的任何内容都只是 HTML、CSS 和 JavaScript,与 Android 无关。
-
嗯,惯性触摸功能在 iOS 和 Android 中的实现方式不同。例如,“-webkit-overflow-scrolling-x: touch”对桌面上运行的浏览器没有影响,但会影响它在 Android 或 iOS 应用程序中的工作方式。他们做了很多具体的事情来使浏览器在基于触摸的平台上很好地工作——诀窍是知道如何利用它们。
-
您是否考虑过他们可能没有使用 WebView?也许它实际上是一个实现的 XML 布局?
-
它是通过 webview 完成的。他们在他们的博客中说了这么多,你可以做各种各样的事情来判断正在运行的内容。 (例如,在这里查看我的问题:stackoverflow.com/questions/18115922/…)
-
如果您在优化此问题方面需要帮助,您需要发布一些运行速度不够快的简单示例的代码。
标签: android uiwebview android-webview