WebView in ScrollView:View not displayed because it is too large to fit into a software layer
报错信息
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到容器中
- 参考国内:Android 开发用ScrollView 嵌套Webview 遇到坑坑 的小伙伴们
- 参考国外:https://stackoverflow.com/questions/15546416/how-to-shrink-webview-size-dynamically-according-to-its-content
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);
用软件加速取代硬件加速
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
<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的更多相关文章
- Android UI WebView的使用:
Android UI WebView的使用: /** * @author smiling * @date 2016/10 */ 布局: <?xml version="1.0" ...
- iOS应用架构谈(二):View层的组织和调用方案(上)
OS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.上篇主要讲View层的代码结构. ...
- iOS应用架构谈(二):View层的组织和调用方案(中)
iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.中篇主要讨论MVC.MVCS. ...
- Android进阶笔记05:View、SurfaceView 和GLSurfaceView 的关系和区别
1. Android游戏当中主要的除了控制类外就是显示类View.SurfaceView是从View基类中派生出来的显示类.android游戏开发中常用的三种视图是: (1) view.Sur ...
- 自定义控件(视图)1期笔记01:View 和 ViewGroup
1.View 和 ViewGroup 图解关系: 2. View 和 ViewGroup 关系和作用: (1) 关系: • 继承关系 • 组合关系 (2) 作用: • View的作用: 提供 ...
- PureMVC(JS版)源码解析(九):View类
在讲解View类之前,我们先回顾一下PureMVC的模块划分: 在PureMVC中M.V.C三部分由三个单例类管理,分别是Model/View/Controller.PureMVC中另外一个 ...
- xUtils3源码分析(一):view的绑定
概述 xUtils3是国人开发的一款功能丰富的Android快速开发框架,值得研究下.zip包下载:[ZIP]xutils主要分以下几个模块 视图绑定模块 网络请求模块 数据库模块 图片加载模块 我们 ...
- 【转】请求处理机制其三:view层与模板解析
进入 View 了 如果处理过程这时候还在继续的话,处理器会调用 view function.Django 中的 Views 不很严格因为它只需要满足几个条件: 必须可以被调用. 必须接受 djan ...
- 小程序实践(六):view内部组件排版
涉及知识点: 1.垂直排列,水平排列 2.居中对齐 示例: 1.默认排版 , 一个父组件里面两个子view 显示效果: 2.先给父view设置一个高度和颜色值,用于看效果 3.实现水平排列和垂直排列的 ...
随机推荐
- 2、尚硅谷_SSM高级整合_使用ajax操作实现页面的查询功能
16.尚硅谷_SSM高级整合_查询_返回分页的json数据.avi 在上一章节的操作中我们是将PageInfo对象存储在request域中,然后list页面解析request域中的对象实现信息的显示. ...
- Oracle的number数据类型
https://www.cnblogs.com/oumyye/p/4448656.html NUMBER ( precision, scale) precision表示数字中的有效位;如果没有指定pr ...
- Cannot resolve symbol window
参照官网执行如下代码的时候,报了Cannot resolve symbol window错误. val windowedCounts = words.groupBy( window($"ti ...
- python+opencv实现图像自适应阈值的均衡化
内容涉及:列表遍历,图像均衡化,图像通道分离与合并 import cv2 import numpy as np import os for path in open("org_junheng ...
- 机器学习之KNN算法(分类)
KNN算法是解决分类问题的最简单的算法.同时也是最常用的算法.KNN算法也可以称作k近邻算法,是指K个最近的数据集,属于监督学习算法. 开发流程: 1.加载数据,加载成特征矩阵X与目标向量Y. 2.给 ...
- nginx配置奇怪问题记录
执行 nginx -t 检查配置报了如下错误: 下面是配置信息 遇到个很奇怪的问题,plm-api-stage 这么配置就可以正常校验过,但是改成 plm-stage-api,就会上面的警告信息: ...
- flask的小错误
这几天刚学flask,根据录屏学代码的时候,遇到一个问题 基本能看懂错误,role_id是类的一个字段,应该是一个对象,最后发现是单词写错了,应该是大写的Column, db.Column(db.In ...
- Python3笔记018 - 4.3 元组
第4章 序列的应用 python的数据类型分为:空类型.布尔类型.数字类型.字节类型.字符串类型.元组类型.列表类型.字典类型.集合类型 在python中序列是一块用于存放多个值的连续内存空间. py ...
- css3渐进增强 VS 优雅降级
印象中,渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的.由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用CSS3,而在低级浏览器只保证最基本的功 ...
- 第三方 CSS 并不安全
最近一段时间,关于 通过 CSS 创建 “keylogger”(键盘记录器) 的讨论很多. 有些人呼吁浏览器厂商去“修复”它.有些人则深入研究,表示它仅能影响通过类 React 框架建立的网站,并指责 ...