问题描述:X5WebView放到RecyclerView中后WebView中的内容超过一定的高度(测试发现高度超过2358)就无法显示详情内容,使用NestedScrollView、ScrollView嵌套X5WebVIew和RecyclerView方式实现也存在同样的问题
错误日志:W/View: WebView not displayed because it is too large to fit into a software layer (or drawing cache), needs 12355200 bytes, only 9331200 available
原因:Activity级别关闭了硬件加速,Windows级别开启了硬件加速,View级别通过设置setLayerType关闭硬件加速导致的mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
不设置这个,部分机型(如:三星 5.0)加载WebView存在黑屏、反复刷新进入页面内存溢出问题,如何兼容?
兼容方案:原来,RecyclerView和WebView外层有个自定义的刷新控件,将自定义的控件设置View级别关闭硬件加速,WebView不要设置View级别关闭硬件加速,开启Windows级别的硬件加速可同时解决上述问题。(若是还没解决,检查页面中是否有其他的自定义控件全部关闭View级别的硬件加速即可,即设置setLayerType(View.LAYER_TYPE_SOFTWARE, null))