當webview遇到了Slidingmenu,webView出現卡白,解決方案

Sliding Menu的是一種比較新的設置界面或配置界面效果,在主界面左滑或者右滑出現設置界面,能方便的進行各類操做。如 Evernote、Google+、Foursquare等諸多優秀應用都採用了這種界面方案。效果見下圖:
   
webView你們都認識,就像村頭的王二狗,村上屌絲,人人都知。

如此白富美的SlidingMenu人見人愛,而屌絲WebView扮演着村頭二狗的角色,當WebView遇到了SlidingMenu 的的時候,WebView就走不動路了,SlidingMenu如此elegant的滑動也被WebView拖的不那麼優雅,每次劃開SlidingMenu,WebView有文本的地方都會出現大片的卡頓,嚴重的影響了SlidingMenu的美觀和使用。 android

通常不多有人想到將SlidingMenu和WebView結合,覺得大部分應用使用SlidingMenu的時候都是在左抽屜裏面放應用的欄目分類,主頁面放一個個listView,像印象筆記這樣 web

可是少數的怪纔會想到這樣的佈局,左邊的抽屜裏面就已經將各個分類和下面的子項目列出來,因此中間的主頁面就放一個webview來顯示具體的文本內容,好比我: 佈局


這時候webview出現了卡白的問題,真心糾結死我了,查了各大論壇貼吧,最後問了SlidingMenu的做者,也沒有獲得回覆,雖然這個bug不影響性能,可是這麼優雅的SlidingMenu被卡白搞的若是掉價,太不舒服了,通過了倆天的苦思冥想和查找,最後發先在Android2.2上面沒有這個問題,可是Android4.0上面卻出現這樣的問題,高版本居然不如低版本兼容性好?通過研究發現了,原來是  Android從3.0(API Level 11)開始,在繪製View的時候支持硬件加速,充分利用GPU的特性,使得繪製更加平滑,可是會多消耗一些內存。這樣問題就被鎖定在了硬件加速上,解決方法也應運而生:關閉硬件加速。 性能

在這個Activity中加入 android:hardwareAccelerated="false" spa

在webview的佈局中加入 android:layerType="software" code

 

 

<WebView
                android:id="@+id/article_context"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dip"
                android:textIsSelectable="true"
                android:layerType="software"
                android:background="@null"
                android:textSize="@dimen/context_size" />
相關文章
相關標籤/搜索