簡體   English   中英

Android Webviews中的非本地滾動條性能

[英]Non-Native Scroller Performance within Android Webviews

是否有人在Webview中運行的應用程序完成了resrch或對第三方滾動條有過很好的體驗? 尤其是滾動時不止一個鴻溝? 即具有導航面板和詳細信息面板的Web視圖。

當只有一個分隔需要滾動條時,它工作平穩,但在上述情況下,滾動非常不穩定。 我確信很多開發人員都遇到了這個問題。

我已經嘗試過iScroll(到目前為止是最好的)以及其他插件,但是滾動的質量並不理想。 我無法使用iFrame,因為我需要調整從服務器提取的某些HTML文檔的樣式。 我在網上搜索了一種方法來調用HTML鴻溝中的本機滾動條,但還沒有找到一種方法。 有辦法,我該怎么辦?

我一直在各種設備上使用API​​的9至15,在非本機滾動條的性能方面我沒有看到任何區別。 如果您的答案有所幫助,我目前正在15上開發該應用程序。 另外,我還關閉了硬件加速,因此效果最佳。

我玩過jqm,Sencha等,他們看到的滾動條令人滿意。 有人知道他們用什么嗎? 為什么我不主要使用這些平台中的任何一個問題是批量和其他性能問題。

目前,我正在使用原始JavaScript構建應用程序,事實證明,與Webview布局中的所有動畫相比,這在性能方面均具有顯着提高-與任何知名的跨平台解決方案相比,均顯着提高。 不幸的是,我沒有足夠的經驗來構建自己的滾動條,因此我需要找到一個開箱即用的解決方案。

任何想法,線索或解決方案,以便其他更擅長使用javascript編寫應用程序的想法,線索或解決方案,都可以為構建高質量的應用程序提供很大的機會。

根據您的經驗和專業知識,請提供您所使用的API級別。

n

我對此做了很多測試。 我不建議僅基於HTML進行第三方滾動,因為根據我的經驗,問題不是Javascript,而是Webview本身:

1)iframe在WebView上的性能較弱。 僅僅將其放置在iframe中,任何(復雜)應用的性能都會降低近40%。 此外,如果您使用硬件加速,它們還會引起更多問題。

2)如果div中的內容既簡單又簡短,則DIVS的滾動是可以接受的,但是當您添加更多復雜的內容進行滾動時,性能會下降。 例如,在我的情況下,將所有內容都封裝在ul / li中(較慢)或沒有(明顯較快)是有所不同的。 但是,這種感覺並不完美,即,如果您習慣於本機滾動,您會意識到這不是本機滾動。

3)身體的原始滾動非常好。 此外,您還會收到類似本機的反饋,例如對過滾動的發光效果等。但是請注意,此滾動未使用javascript,它只是比讓用戶滾動的webview大的頁面,而WebView會照顧它。 就我而言,這是我希望為用戶提供的唯一可接受的滾動體驗。

所以我想出了一個混合的解決方案:我做了一個JavaScript可調用的Java函數,它將以所需的大小打開另一個Web視圖,例如它是一個iframe,因此我可以從HTML中打開它並填充一些東西,這並不是很難做到的,而且效果很棒。

更多的東西:

4)在我的情況下,從Java滾動WebView(scrollTo)非常有用,因為我要加載巨大的HTML頁面(像雜志)。 如果我要求Webview從Java進行滾動,其性能要比依靠JavaScript進行滾動的性能好得多。

5)硬件加速將滾動速度提高了100%-setLayerType(HARDWARE)-,但是要使用它,您必須使html非常簡單。 諸如Display:none / block之類的東西會完全破壞應用程序(有關更多信息,請參見WebView無法渲染,直到觸摸Android 4.2.2為止

6)大圖像上的HTML5動畫完全破壞了滾動體驗。

7)所有這些在幾個月內都是無效的,goole正在將渲染引擎替換為“ Blink”,因此誰知道會發生什么。 我不安。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM