2012-05-15 19 views
1

任何人都在那里做了研究,或对第三方的滚动器的webview中运行的应用程序有真正的良好体验?尤其是与不止一个分水岭滚动??即具有导航面板和详情面板的web视图。Android Web视图中的非本机滚动性能

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

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

我一直在使用API​​的9到15在各种设备上玩,我没有看到任何区别,当涉及到非本机滚动的性能。我目前正在开发15这个应用程序,如果这是对你的答案的帮助。此外,我有硬件加速关闭,这是最好的。

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

目前我正在构建一个使用原始javascript的应用程序,并且这已被证明在webview布局中的所有动画中都有显着的性能提升 - 显着优于任何大名鼎鼎的跨平台解决方案。不幸的是,我没有足够的经验来构建自己的滚动条,所以我需要找到一个开箱即用的解决方案。

任何想法,线索或解决方案,以便其他人更好地使用JavaScript编写应用程序可以有一个战斗机会,建设高品质的应用程序将不胜感激。

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

Thnx

回答

1

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

1)WebView上的iframe表现弱弱弱。任何(复杂)应用程序的性能下降近40%,只是将其放入iframe中。此外,如果您使用硬件加速,它们会带来更多问题。

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

3)原始滚动的身体非常好。此外,你会得到像本机一样的反馈,比如对超滚动的发光效果等。但是请注意,这个滚动不使用javascript,它只是一个比webview更大的页面,让用户滚动并且WebView负责处理它。就我而言,这是我为用户所需的唯一可接受的滚动体验。

所以我来了一个混合的解决方案:我做了一个JavaScript可调用的Java函数,将打开另一个webview与所需的大小,如果它是一个iframe,所以我可以打开它从HTML和填充的东西,它不是很难做到,而且改进太棒了。

更多的东西:

4)滚动从Java(scrollTo)网页视图是在我的情况,我在那里装(样的杂志)要swipped一个巨大的HTML页面非常有用。如果我要求webview从Java滚动,性能要比依靠JavaScript来滚动要好得多。 5)硬件加速提高了滚动速度100%-setLayerType(HARDWARE) - 但为了能够使用它,你必须让html非常简单。像Display:none/block等东西完全破坏了应用程序(请参阅WebView fails to render until touched Android 4.2.2了解更多信息)

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

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