当webview遇到了Slidingmenu,webView出现卡白,解决方案
先介绍一下什么是SlidingMenu:
|
webView大家都认识,就像村头的王二狗,村上屌丝,人人都知。
如此白富美的SlidingMenu人见人爱,而屌丝WebView扮演着村头二狗的角色,当WebView遇到了SlidingMenu 的的时候,WebView就走不动路了,SlidingMenu如此elegant的滑动也被WebView拖的不那么优雅,每次划开SlidingMenu,WebView有文本的地方都会出现大片的卡顿,严重的影响了SlidingMenu的美观和使用。
一般很少有人想到将SlidingMenu和WebView结合,以为大部分应用使用SlidingMenu的时候都是在左抽屉里面放应用的栏目分类,主页面放一个个listView,像印象笔记这样
但是少数的怪才会想到这样的布局,左边的抽屉里面就已经将各个分类和下面的子项目列出来,所以中间的主页面就放一个webview来显示具体的文本内容,比如我:
这时候webview出现了卡白的问题,真心纠结死我了,查了各大论坛贴吧,最后问了SlidingMenu的作者,也没有得到回复,虽然这个bug不影响性能,但是这么优雅的SlidingMenu被卡白搞的如果掉价,太不舒服了,经过了俩天的苦思冥想和查找,最后发先在Android2.2上面没有这个问题,但是Android4.0上面却出现这样的问题,高版本竟然不如低版本兼容性好?经过研究发现了,原来是 Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。这样问题就被锁定在了硬件加速上,解决方法也应运而生:关闭硬件加速。
在这个Activity中加入 android:hardwareAccelerated="false"
在webview的布局中加入 android:layerType="software"
<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" />
这个方案虽然解决了webview的卡白问题,但是SlidingMenu优雅的滑动也有所损失,也只能算个折中的方案,过了几天后SlidingMenu的作者也回复了,解决方案也是关闭硬件加速,这算是一个bug吧,后期他可能会修复。
当webview遇到了Slidingmenu,webView出现卡白,解决方案的更多相关文章
- [WebView学习之三]:使用WebView来创建Apps
上一篇我们学习了([WebView学习之二]:使用Web Apps 支持不同分辨率屏),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq) ...
- robotframework:appium切换webview后,在webview里滑动屏幕
问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美 ...
- ionic生成apk使用build命令下载gradle-2.2.1-all.zip卡,解决方案
ionic生成apk使用build命令下载gradle-2.2.1-all.zip卡,解决方案 直接使用ionic build android命令,自动下载gradle-2.2.1-all.zip超慢 ...
- iOS进阶--提高XCode编译速度、Xcode卡顿解决方案
提升编译链接的速度主要有以下三个方式: 1. 提高XCode编译时使用的线程数 defaults write com.apple.Xcode PBXNumberOfParallelBuildSubta ...
- vue 在有大数据量的 table 中使用弹窗 input 输入数据时卡顿解决方案
vue 在有大数据量的 table 中使用弹窗 input 输入数据时卡顿解决方案 原因:vue在进行输入时,进行了多次的render刷新渲染操作,导致了input框输入时发生的卡顿现象 解决方法:在 ...
- IOS WebView修改contentInset 导致webview长按弹出菜单跳动的解决方法
最近在项目中需要用到webview 加载H5 并且在webview 底部使用原生UI添加其他空间比如广告.或者评论(Scrollview) 最初使用修改webview中scrollview 的cont ...
- webview定位 & native和webview切换
前言:现在的app大都是混合式的native+webview,对于native可以直接用uiautomator定位然后操作元素,但是web就定位不到了 一.先看看使用native定位的 二.定位web ...
- Android WebView加载Html右边空白问题的解决方案
用WebView显示Html时,右边会出现一条空白区,如下图所示: 最开始的时候,认为是网页本身的空白. 后来发现网页本身无问题,且这个空白区是跟Scroll Bar 的位置和粗细比较相符,于是去控制 ...
- Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...
随机推荐
- PHP查看在线服务器与本地服务器支持函数差别
在本地开发好的程序.代码,当传到服务器后,经常会出现罢工的事情.这时候就要考虑开发环境和在线的环境是否完全一致了.这里所说的一致性,包括了容器的配置.php的配置等等.下面所要解决的只是其中一项,你的 ...
- 让Apache支持中文Directory的最简方法
解决方法很简单,一句话,将httpd.conf配置文件的字符编码转换成UTF-8即可. 转换方法也很简单,在记事本中选择 文件->另存为,弹出的窗口中选择编码为UTF-8即可. 重新启动下apa ...
- Jsp、Servlet
1 forward.redirect forward 转发是服务器行为,浏览器根本不知道服务器发送的内容是从哪儿来,所以它的地址栏中还是原来的地址. redirect 重定向是客户端行为.redire ...
- PeopleEditor的取值及赋值
/// <summary> /// 从PeopleEditor取值 /// </summary> /// <param name="peopleEditor&q ...
- VisualSVN Server安装后,TortoiseSVN远程无法访问版本库。
修正!重演了一遍,发现总结有误,重新整理下.首先访问版本库的路径不清楚的话可以在VisualSVN Server的版本库上右键“Copy URL to Clipboard”.访问版本库失败的几种情况: ...
- BZOJ 2100: [Usaco2010 Dec]Apple Delivery( 最短路 )
跑两遍最短路就好了.. 话说这翻译2333 ---------------------------------------------------------------------- #includ ...
- C陷阱与缺陷(二)
第二章 语法陷阱 2.1 理解函数声明 (*(void(*)())0)();任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符.一旦我们知道了如何声明一个给定类型的变量,那么该类型的类型转 ...
- B-树和B+树的应用:数据搜索和数据库索引
B-树和B+树的应用:数据搜索和数据库索引 B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用. 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每 ...
- 如何快速方便的输出向量vector容器中不重复的内容
在vector容器中,存入的内容难免会出现重复,那么如何快速输出或提前非重复的那些数据呢,即重复的数据只输出一次,直观的方法是每次输出都要通过循环比较是否已经输出过,这种方法还是比较费时的,可以利用u ...
- UIColor深入研究(CGColor,CIColor)
由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题, 第一:UIClor类方法的使用 就是关于UIColor的使用,记得之前开发中我们使用的都是UIColor后 ...