1

有没有人做过研究或对在 web 视图中运行的应用程序的 3rd 方滚动器有真正的经验?尤其是滚动的不止一个分界线?即带有导航面板和详细信息面板的网络视图。

当只有一个分区需要滚动条时,它可以顺利运行,但在上述情况下,它非常不稳定。相信很多开发者都遇到过这个问题。

我已经尝试过 iScroll(并且是迄今为止最好的)以及其他插件,但滚动的质量不太理想。我不能使用 iFrame,因为我需要调整从我们的服务器中提取的一些 HTML 文档的样式。我在网上搜索了一种在 HTML 中调用本机滚动条的方法,但还没有找到方法。有没有办法,我该怎么做?

我一直在各种设备上使用 API 的 9 到 15,但在非本机滚动器的性能方面我没有看到任何差异。如果这对您的回答有帮助,我目前正在 15 开发该应用程序。另外,我关闭了硬件加速,这效果最好。

我玩过 jqm、Sencha 等,他们看到的滚动条都令人满意。有谁知道他们用什么?我不主要使用这些平台的问题是体积和其他性能问题。

目前,我正在使用原始 javascript 构建一个应用程序,事实证明,这在 webview 布局中的所有动画性能方面都有显着提高 - 比任何大牌跨平台解决方案都要好得多。不幸的是,我没有足够的经验来构建自己的滚动条,所以我需要找到一个开箱即用的解决方案。

非常感谢任何想法、线索或解决方案,以便其他更擅长使用 javascript 编写应用程序的人可以有机会构建高质量的应用程序。

凭借您的经验和专业知识,请包括您使用的 API 级别。

谢谢

4

1 回答 1

1

我对此做了很多测试。我不会推荐仅基于 HTML 的第三方滚动,因为根据我的经验,问题不在于 javascript,而在于 webview 本身:

1) WebView 上的 iframe 性能较弱弱弱。对于任何(复杂的)应用程序,仅将其放置在 iframe 中,我的性能就会下降近 40%。此外,如果您使用硬件加速,它们会导致更多问题。

2) 如果 div 中的内容简单且简短,则可以接受 DIVS 的滚动,但是当您添加更精细的内容进行滚动时,性能会降低。例如,在我的情况下,将所有内容都包含在 ul/li(较慢)或不包含(明显更快)中会有所不同。但是,感觉并不完美,也就是说,如果你习惯了原生滚动,你就会意识到这不是原生滚动。

3)身体的原始滚动非常好。此外,您会获得类似原生的反馈,例如过度滚动时的发光效果等。但请注意,此滚动不是使用 javascript,它只是一个比您让用户滚动的 webview 更大的页面,而 WebView 会处理它. 就我而言,这是我希望用户获得的唯一可接受的滚动体验。

所以我提出了一个混合解决方案:我做了一个 JavaScript 可调用的 Java 函数,它会打开另一个具有请求大小的 webview,就像它是一个 iframe 一样,所以我可以从 HTML 打开它并填充东西,这不是很难做到,而且改进很棒。

更多的东西:

4) 在我的情况下,从 Java (scrollTo) 滚动 WebView 非常有用,我加载了一个巨大的 HTML 页面(一种杂志)来滑动。如果我要求 webview 从 Java 滚动,性能比依靠 JavaScript 滚动要好得多。

5) 硬件加速将滚动速度提高了 100% -setLayerType(HARDWARE)- 但​​要能够使用它,你必须让你的 html 非常简单。诸如 Display:none/block 之类的东西完全破坏了应用程序(有关更多信息,请参阅WebView 在触摸 Android 4.2.2 之前无法呈现)

6) 大图像上的 HTML5 动画完全扼杀了滚动体验。

7)这一切都在几个月内无效,goole正在将渲染引擎替换为“Blink”,所以谁知道会发生什么。我很不安。

于 2013-05-12T00:59:55.010 回答