android crosswalk闪退,Crosswalk 首次启动闪烁一下的处理办法(Xamarin.Android)

article/2025/9/15 16:18:22

Crosswalk继承好了Webview之后,出现了一个奇怪现象。首次启动会短暂的黑屏闪烁。

进过查阅发现Xwalk控件Webview内部使用的是surfaceview。

而安卓surfaceview是特殊的控件,它独特缓存和处理机制,默认颜色为黑色#000。系统在第一次添加surfaceview时,会重新activity计算布局,从而导致了画面闪烁。

解决方法:

1、添加一个特别的surfaceview,布局高度和宽度都为0,让系统初始化一次。

activity:

android:layout_width="0dp"

android:layout_height="0dp" />

代码:

var surfaceView = new SurfaceView(this);

surfaceView.Layout(0, 0, 0, 0);

this.AddContentView(surfaceView, new ViewGroup.LayoutParams(0, 0));

2、对surfaceview设置默认颜色透明

surfaceView.SetBackgroundColor(Android.Graphics.Color.White);

surfaceView.Holder.SetFormat(Android.Graphics.Format.Transparent);

实际的应用中并不是很理想,调试模式下可能是运行缓慢的原因感觉上效果比较好。

经查看CrossWalk的源代码,发现在XWalkView中使用了surfaceview。

我们可以在构造完成这个对象后(显示前设置surfaceview)

-

c639edc03542?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

图1

以上分为两步

1、在构造对象是实例化了SurfaceView

2、在postXWalkViewInternalContextConstructor(reflectionInit方法内触发,应该时需要初始化crosswalk内核时调用)。这是侯进行对象的移除。

图中的 removeViewAt(0);

在Create XWalkView的时候

var xWalkView = this.findViewById(xxx);

val b = xWalkView.getChildAt(0) as XWalkViewBridge

surfaceView = (b.getChildAt(0) as ViewGroup).getChildAt(0) as SurfaceView

//设置SurfaceView样式

surfaceView.SetBackgroundColor(Android.Graphics.Color.White);

surfaceView.Holder.SetFormat(Android.Graphics.Format.Translucent);

按照这样的设置应该会稍好一些。

注意:以上代码是Xamarin.Android,java的小伙伴请注意做一下转换。

2019-12-17 23:18 更新


http://chatgpt.dhexx.cn/article/AHfgxtqx.shtml

相关文章

Android集成Cordova与Crosswalk

1. 介绍 1.1 Cordova Cordova是贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎。Adobe将会继续以Cordova加上PhoneGap Build和Adobe Shadow的组合提供PhoneGap。 特性: ● 移动应用程序使用Html、Css、…

android crosswalk闪退,一篇文章读懂开源内嵌浏览器Crosswalk【转载】

本帖最后由 ecoolper 于 2014-12-24 17:55 编辑 Web技术的优势早已被广大 Crosswalk作为一款开源的web引擎,正是为了跨越这些障碍而生。目前Crosswalk正式支持的移动 Crosswalk有何优势? Crosswalk采用Chromium内核并不断地快速演进(六周一次更新)&#…

【Android】Crosswalk 开发浅析

最近的项目中,有用到phonegap,并需要展示一些需要高效渲染的网页,同情况下,IOS跑起来轻松无比,但是Webview。。。。(泪奔),在焦头烂额的机型及版本适配中,发现了Crosswal…

android crosswalk 集成

crosswalk 集成 在项目根路径下的 build.gradle 中添加: buildscript {repositorities {……}}allprojects {repositories {……maven { url https://download.01.org/crosswalk/releases/crosswalk/android/maven2}}}在对应 module 的 build.gradle 中添加依赖&am…

Android 集成Chrome 浏览器内核 Crosswalk

Crosswalk 内核的兴起与消亡 Android 4.4 版本之前,使用的是基于 androidWebKit 的 WebView 但实际上,由于 Android 的碎片化问题(大量存在不同的 Android 系统版本,并且各个厂商对内置应用进行定制化,有可能用的不是…

Android集成三方浏览器之Crosswalk

上一篇讲解了腾讯 X5 内核的集成,这一篇是讲解 Crosswalk 的集成 Crosswalk 也是采用了Chromenium 内核,是一款开源的 web 引擎,开发者可以直接把 Crosswalk 嵌入到应用之中,当然也支持共享模式(系统中没有对应的 Cros…

CROSSWALK入门

Crosswalk是一款开源的web引擎。目前Crosswalk正式支持的移动操作系统包括Android和Tizen,在Android 4.0及以上的系统中使用Crosswalk的Web应用程序在HTML5方面可以有一致的体验,同时和系统的整合交互方面(比如启动画面、权限管理、应用切换、…

Java和大数据的关系如何?

非常多的人,尤其是没有研究过,没有关注过这块知识的人都容易误解Java 和大数据的概念,甚至有些人认为大数据就是用java写的。 一:两者关系 java是计算机的一门编程语言;可以用来做很多工作,大数据开发属于…

java,大数据,

辅导,环境安装

Java?还是大数据?

IT 行业的人可能听过“ Java 大数据开发”这个名词,其实这并不是一个新岗位,而是因为大数据开发的编程语言以 Java 为主,掌握 Java 是进行大数据开发的基础,这才形成了“ Java 大数据开发”的说法。 随着 Java 开发岗人才供应趋于…

大数据开发-Java入门1

目录 1、计算机语言发展史1.1 计算机语言:1.2 常用的DOS命令: 2、java介绍与安装3、Java程序初体验3.1 Java开发三步走3.2 常见错误3.3 代码解释3.4 源文件名和类型 1、计算机语言发展史 1.1 计算机语言: 第一代:机器语言第二代…

JAVA 大数据方向 - 知识体系概况

JAVA 大数据方向 - 知识体系概况 想学后端,面临选方向,补充一下

学习Java大数据需要掌握哪些Java技能?

学习Java大数据需要掌握哪些Java技能?现在大数据发展很速度很多小伙伴想要学习Java大数据技术开发,但是学习大数据为什么需要掌握Java技能呢? 一、学大数据为什么要掌握Java? 首先,我们学习大数据,为什么要…

Java——处理大数据 BigInteger

整型 int型表示范围是:-(2的31次方) ~ (2的31次方) - 1 long型表示范围是:-(2的64次方) ~(2的64次方) - 1 浮点型 float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同float 3.402823e38 ~ 1.401298e-45(e…

大数据必学Java基础(一百一十七):三个案例开发

文章目录 三个案例开发 一、记录请求日志 二、统计实时在线人数 三、项目重启免登录

大数据开发 - Java入门2

目录 Java基础知识注释关键字常量标识符测试题回顾 Java基础知识 注释 对程序的解释说明 分类: 单行注释:// 对本行后面的内容进行注释多行注释:/*解释内容 */文档注释 :/** 注释内容*/ --用于产生帮助文档,也有多行…

Java和大数据有什么联系?

提到Java,我们经常将它和大数据联系在一起。Java是一门面向对象编程语言,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是一个概念性的东西。那么,Java和大数据有什么关系呢? 简单的说Java语言是…

java到大数据学习路线

计算机网络 操作系统 数据结构 计算机组成原理 可重点学习如下知识点 计算机网络(重点看 OSI七层模型 或 TCP/IP五层模型 理解每层含义)数据结构(重点看 数组、栈、队列、链表、树)算法(重点看 各种 排序算法、查…

Java大数据文件处理方法

前言 Java大数据文件处理是一种使用Java编写的大型数据处理技术,特别适用于处理大型数据文件。在这篇文章中,我们将了解什么是Java大数据文件处理,为什么它很重要以及Java大数据文件处理的方法和技术。 一、什么是Java大数据文件处理&#…

大数据必学Java基础(一):Java体系结构、特性和优势

文章目录 Java体系结构、特性和优势 一、JAVA简史 【1】SUN公司 【2】Java为什么被发明