报错信息

W/View: WebView not displayed because it is too large to fit into a software layer (or drawing cache), needs 10264320 bytes, only 9331200 available

报错现象:

我加载小于20KB的网页的时候,WebView也是能够正常加载的,但是当我加载一个180KB(不得不说测试真是鬼才)的网页时,就出现上面的报错了,且整个WebView是一片空白。

问题搜索核心关键词

  • ScrollView中嵌套WebView空白
  • View not displayed because it is too large to fit into a software layer

网上的答案:

动态创建WebView并add到容器中

Seems there's no way to resize the WebView(decrease) its size dynamically once its loaded. So, the only thing that could solve my problem was reloading the complete WebView.
So, instead of defining the Fragment in XML, I changed my stuff by adding Fragment dynamically every time. By which I was able to solve my issue.

个人感觉用处不大,我用的其他替代方案

大面积空白

参考:Android ScrollView嵌套WebView出现大面积空白页解决方法

对于其中的方案二我已经加上了,但是还是没解决我的问题。

mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setVerticalScrollbarOverlay(false);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.setHorizontalScrollbarOverlay(false);

用软件加速取代硬件加速

摘自:https://stackoverflow.com/questions/18471194/webview-in-scrollview-view-too-large-to-fit-into-drawing-cache-how-to-rewor

it happen for me when I change the Layer Type of the webview to use a software layer (default is hardware): mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

这个我原本就设置了,但是还是继续报错

mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

或者在xml中设置layerType也是有一样的效果的

<WebView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layerType="software" />

CoordinatorLayout 代替 ScrollView

Android ScrollView嵌套Webview(实际使用CoordinatorLayout嵌套Webview实现需求,效果都差不多)

这里就不赘述了,也是一种思路,但是和我的需求不一样。

给ScrollView 设置 layerType

https://stackoverflow.com/questions/27444387/issue-on-openglrenderer-path-too-large-to-be-rendered-to-a-texture

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layerType="software">

也可以

mScrollView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

WebView in ScrollView:View not displayed because it is too large to fit into a software layer的更多相关文章

  1. Android UI WebView的使用:

    Android UI WebView的使用: /** * @author smiling * @date 2016/10 */ 布局: <?xml version="1.0" ...

  2. iOS应用架构谈(二):View层的组织和调用方案(上)

    OS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.上篇主要讲View层的代码结构. ...

  3. iOS应用架构谈(二):View层的组织和调用方案(中)

    iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.中篇主要讨论MVC.MVCS. ...

  4. Android进阶笔记05:View、SurfaceView 和GLSurfaceView 的关系和区别

    1.  Android游戏当中主要的除了控制类外就是显示类View.SurfaceView是从View基类中派生出来的显示类.android游戏开发中常用的三种视图是:    (1) view.Sur ...

  5. 自定义控件(视图)1期笔记01:View 和 ViewGroup

    1.View 和 ViewGroup 图解关系: 2. View 和 ViewGroup 关系和作用: (1) 关系: • 继承关系 • 组合关系 (2) 作用:      • View的作用: 提供 ...

  6. PureMVC(JS版)源码解析(九):View类

    在讲解View类之前,我们先回顾一下PureMVC的模块划分:      在PureMVC中M.V.C三部分由三个单例类管理,分别是Model/View/Controller.PureMVC中另外一个 ...

  7. xUtils3源码分析(一):view的绑定

    概述 xUtils3是国人开发的一款功能丰富的Android快速开发框架,值得研究下.zip包下载:[ZIP]xutils主要分以下几个模块 视图绑定模块 网络请求模块 数据库模块 图片加载模块 我们 ...

  8. 【转】请求处理机制其三:view层与模板解析

     进入 View 了 如果处理过程这时候还在继续的话,处理器会调用 view function.Django 中的 Views 不很严格因为它只需要满足几个条件: 必须可以被调用. 必须接受 djan ...

  9. 小程序实践(六):view内部组件排版

    涉及知识点: 1.垂直排列,水平排列 2.居中对齐 示例: 1.默认排版 , 一个父组件里面两个子view 显示效果: 2.先给父view设置一个高度和颜色值,用于看效果 3.实现水平排列和垂直排列的 ...

随机推荐

  1. 自定义Springboot全局异常类

    一.简要说明 如何实现网上文章基本是随便一搜就可以很快找到, 这里不再赘述. 二.Spring-web和Spring-webmvc 通过idea查看到两个注解位于 spring-web-5.2.2.R ...

  2. js语法基础入门(1.2)

    1.4.查找元素的方法 1.4.1.查找元素的方法 JavaScript可以去操作html元素,要实现对html元素的操作,首选应该找到这个元素,有点类似于css中的选择器 html代码: <d ...

  3. scrapy框架结构与工作原理

    组件: ENGINE:引擎,框架的核心,其他组件在其控制下协同工作. SCHEDULER:调度器,负责对SPIDER提交的下载请求进行调度 DOWNLOADER:下载器,负责下载页面,发送HTTP请求 ...

  4. Kafka 可视化监控和管理 UI工具评估

    以下内容,来自网络资料整理和个人安装使用结果.后续会持续更新

  5. 怎么给tbody加滚动条?通过css样式给表格tbody加垂直滚动条

    tbody加滚动条实现思路: 1,把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto. 2,把thead的tr设置成display:block. ...

  6. 转载--未看关于移动端Web远程开发调试

    移动端Web开发调试之Chrome远程调试(Remote Debugging) http://blog.csdn.net/freshlover/article/details/42528643 移动端 ...

  7. POJO类中布尔类型为啥不让用isXxx命名

    源码面前,了无秘密 <阿里开发规范泰山版>(2020.04.22)-->编程规约-->(一) 命名风格-->第8条规定: [强制]POJO 类中的任何布尔类型的变量,都不 ...

  8. 获取本机SqlServer名称

    using System.Data.Sql; //检索包含有关可用SQL Server实例的信息的表,必须先使用共享/静态Instance属性来检索枚举器 SqlDataSourceEnumerato ...

  9. day07总结

    元组常用操作 # ======================================基本使用======================================# 1.用途:元组就是 ...

  10. mysql 存储引擎的选择

    MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性.并发性要求不是很高,选择这个存储引擎非常合适.MyISAM在Web.数据仓储和其他应用环境下最常使用的存储 ...