2012-05-15 16 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正在將渲染引擎替換爲「閃爍」,所以誰知道會發生什麼。我很不安。