如此白富美的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" />