解决Flutter混合开发原生页面跳转Flutter页面黑屏的问题
在Flutter混合开发入门这篇文章中我们介绍了如何在原来的原生项目中集成Flutter,实现了从原生页面跳转flutter页面的功能
但是在页面跳转的过程中出现黑屏的问题
方法一
增加调用flutterView.setZOrderOnTop(true)和flutterView.getHolder().setFormat(PixelFormat.TRANSLUCENT)
public class FlutterActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_flutter);FlutterView flutterView = Flutter.createView(FlutterActivity.this, getLifecycle(), "route1");flutterView.setZOrderOnTop(true);flutterView.getHolder().setFormat(PixelFormat.TRANSLUCENT);setContentView(flutterView);}
}
方法二
先隐藏FlutterView,显示加载进度圈
监听FlutterView的加载,当第一帧加载成功后显示再显示FlutterView
public class FlutterActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_flutter);ProgressBar progress = findViewById(R.id.progress);FrameLayout container = findViewById(R.id.container);View flutterView = Flutter.createView(FlutterActivity.this, getLifecycle(), "route1");FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);container.addView(flutterView, layout);((FlutterView) flutterView).addFirstFrameListener(new FlutterView.FirstFrameListener() {@Overridepublic void onFirstFrame() {progress.setVisibility(View.INVISIBLE);container.setVisibility(View.VISIBLE);}});}
}
布局如下
<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><ProgressBarandroid:id="@+id/progress"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"/><FrameLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="invisible"/>
</FrameLayout>
解决Flutter混合开发原生页面跳转Flutter页面黑屏的问题相关推荐
- 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )
文章目录 前言 一.创建 Android 项目 二.关联 Android 工程与 Flutter Module 工程 1.配置 Flutter Module工程 2.配置 build.gradle 3 ...
- 58同城 Flutter 混合开发探索与实践
点击"开发者技术前线",选择"星标????" 在看|星标|留言, 真爱 导语 本文主要介绍将Flutter应用到已有Native项目中混合开发遇到的问题及解决 ...
- 【Flutter】Flutter 混合开发 ( 安卓端向 Flutter 传递数据 | FlutterFragment 数据传递 | FlutterActivity 数据传递 )
文章目录 前言 一.FlutterFragment 数据传递 二.FlutterActivity 数据传递 三.相关资源 前言 在上一篇博客 [Flutter]Flutter 混合开发 ( 关联 An ...
- Flutter开发之《网易新闻客户端Flutter混合开发实践》笔记(52)
摘自:网易新闻客户端Flutter混合开发实践 引言 网易新闻项目本身很庞大,业务繁多,全部改为Flutter实现肯定是不现实的,在使用Flutter的前期阶段,我们挑选了相对独立的几个模块,在现有工 ...
- 技术干货 | Flutter 混合开发基础
导读:Flutter 支持以独立页面.甚至是 UI 片段的方式,集成到现有的应用中,即所谓的混合开发模式.本文主要谈谈 Android 平台下, Flutter 的混合开发与构建. 文|李成达 网易云 ...
- Android与Flutter混合开发
最近项目中需要在Android原生的应用中添加一些功能,时间紧,任务重,考虑再三,只有Android与Flutter混合才能按时完成.如上图所示,在Android页面中有些按钮需要在Android中跳 ...
- 【错误记录】Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )
文章目录 一. 报错信息 二. 解决方案 一. 报错信息 在 Flutter 混合开发中 , 开发 Android 与 Flutter 信息交互功能 ; 创建 BasicMessageChannel ...
- 【Flutter】Flutter 混合开发 ( 简介 | Flutter 混合开发集成步骤 | 创建 Flutter Module )
文章目录 一.Flutter 混合开发简介 二.Flutter 混合开发集成步骤 三.创建 Flutter Module 1.使用命令行创建 Flutter Module 项目 ( 仅做参考 ) 2. ...
- Flutter混合开发、安卓,ios
date:12.29,for flutter >v1.12.x 更新说明: 适配Flutter >=v1.12.x 在Flutter的应用场景中,有时候一个APP只有部分页面是由Flutt ...
最新文章
- [LeetCode]42. Trapping Rain Water雨水填坑
- 第五章 业务架构,5.3 千亿访问量下的开放平台技术揭秘(作者:风胜)
- 机器学习常用算法(LDA,CNN,LR)原理简述
- JavaScript栈的实现
- 小蚂蚁学习Redis笔记(13)——Redis之phpredis的安装
- selenium 等待_Selenium等待:内隐,外显,流利和睡眠
- Linux 命令之 iwlist 命令-从无线网卡获取更详细的无线信息
- allegro导出坐标文件正反面_Orcad与Allegro交互
- win8系统配置服务器地址,win8系统默认服务器地址
- 阿里巴巴在内蒙古旱区试水物联网灌溉技术,一年省出1.5个西湖 1
- Echarts数据可视化series-graph关系图,开发全解+完美注释
- Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议
- 用C++计算文件的MD5值
- 2018年上半年 系统分析师 论文 真题
- 屏幕空间的动态全局光照(漫反射)
- 手把手教你使用QGIS制作地图
- 小米6无线显示无法连接服务器,小米手机:无法连接WiFi怎么解决?
- 计算机应用基础主要按键,计算机应用基础教案第一讲:键盘与鼠标(中职教育)...
- MFC中单文档程序框架
- 【机器学习】使用Matlab和CNN完成回归任务