文章目录

  • 前言
  • 一、FlutterFragment 数据传递
  • 二、FlutterActivity 数据传递
  • 三、相关资源

前言

在上一篇博客 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 ) 中 , 创建 Android 工程 , 并将两个工程进行关联 , 在 Android 的 Activity 界面中嵌入了 FlutterFragment , 在 Android 中启动了 FlutterActivity ;

本篇博客介绍如何从 Android 端向 Flutter 端传递数据 ;

Flutter 混合开发集成步骤 :

  • ① 在 Android Studio 中创建 Flutter Module ;
  • ② 为 Native 应用添加 Flutter Module 依赖 ;
  • ③ 在 Native 应用 ( Android / iOS 应用 ) 中 , 调用 Flutter Module 模块 ;
  • ④ 编写 Flutter Module 中的 Dart 代码 ;
  • ⑤ 运行 Flutter 混合应用 ;
  • ⑥ 项目的 热重启 / 重新加载 ;
  • ⑦ 调试 Dart 代码 ;
  • ⑧ 应用发布 ;

一、FlutterFragment 数据传递


调用 FlutterFragment.createDefault() 创建的 FlutterFragment , 没有传递任何数据 ;

调用 FlutterFragment.withNewEngine() 可以获取创建的 Flutter 引擎 , 通过该 Flutter 引擎 , 可以设置 initialRoute 参数 ;

设置代码如下 :

findViewById(R.id.flutter1).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {FragmentTransaction fragmentTransaction =getSupportFragmentManager().beginTransaction();// 使用该方法创建的 Fragment 没有传递数据//FlutterFragment.createDefault()// 打开默认界面//fragmentTransaction.replace(R.id.frame, FlutterFragment.createDefault());// 创建 FlutterFragmentfragmentTransaction.replace(R.id.frame,FlutterFragment.withNewEngine().initialRoute("Android 中嵌入 FlutterFragment").build());fragmentTransaction.commit();}
});

Flutter 中接收到数据后 , 将传入的数据设置为标题 ;

执行效果如下 : Flutter 界面的标题变为 " Android 中嵌入 FlutterFragment " ;

二、FlutterActivity 数据传递


与 FlutterFragment 类似 , FlutterActivity 也可以调用 FlutterActivity.withNewEngine() 获取一个 Flutter 引擎 ;

通过该 Flutter 引擎 , 可以设置 initialRoute 参数 ;

设置代码如下 :

findViewById(R.id.flutter2).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = FlutterActivity.withNewEngine().initialRoute("Android 中启动 FlutterActivity").build(MainActivity.this);intent.putExtra("initParams", "Android 中启动 FlutterActivity2");startActivity(intent);}
});

执行效果如下 : Flutter 界面的标题变为 " Android 中启动 FlutterActivity " ;

三、相关资源


参考资料 :

  • Flutter 官网 : https://flutter.dev/
  • Flutter 插件下载地址 : https://pub.dev/packages
  • Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )
  • 官方 GitHub 地址 : https://github.com/flutter
  • Flutter 中文社区 : https://flutter.cn/
  • Flutter 实用教程 : https://flutter.cn/docs/cookbook
  • Flutter CodeLab : https://codelabs.flutter-io.cn/
  • Dart 中文文档 : https://dart.cn/
  • Dart 开发者官网 : https://api.dart.dev/
  • Flutter 中文网 : https://flutterchina.club/ , http://flutter.axuer.com/docs/
  • Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )
  • GitHub 上的 Flutter 开源示例 : https://download.csdn.net/download/han1202012/15989510
  • Flutter 实战电子书 : https://book.flutterchina.club/chapter1/
  • Dart 语言练习网站 : https://dartpad.dartlang.org/

重要的专题 :

  • Flutter 动画参考文档 : https://flutterchina.club/animations/

博客源码下载 :

  • GitHub 地址 : ( 随博客进度一直更新 , 有可能没有本博客的源码 )

    • Flutter Module 工程 : https://github.com/han1202012/flutter_module
    • Android 应用 : https://github.com/han1202012/flutter_native
    • 注意 : 上面两个工程要放在同一个目录中 , 否则编译不通过 ;
  • 博客源码快照 : https://download.csdn.net/download/han1202012/21670919 ( 本篇博客的源码快照 , 可以找到本博客的源码 )

【Flutter】Flutter 混合开发 ( 安卓端向 Flutter 传递数据 | FlutterFragment 数据传递 | FlutterActivity 数据传递 )相关推荐

  1. 【Flutter】Flutter 混合开发 ( 简介 | Flutter 混合开发集成步骤 | 创建 Flutter Module )

    文章目录 一.Flutter 混合开发简介 二.Flutter 混合开发集成步骤 三.创建 Flutter Module 1.使用命令行创建 Flutter Module 项目 ( 仅做参考 ) 2. ...

  2. 安卓输入法弹出后css横屏,mui开发安卓端,输入法软键盘导致css横屏样式判断触发...

    mui开发安卓端,输入法软键盘导致css横屏样式判断触发 mui开发安卓端,输入法软键盘导致css横屏样式判断触发 css 横屏媒体查询 @media screen and (orientation: ...

  3. 干货 | 携程APP Native/RN内嵌Flutter UI混合开发实践和探索

    作者简介 Deway,携程资深工程师,iOS客户端开发,热衷于大前端和动态化技术: Frank,携程高级工程师,关注移动端热门技术,安卓客户端开发. 前言 随着各种多端技术的蓬勃发展,如今的移动端和前 ...

  4. 【Flutter】Flutter 混合开发 ( Dart 代码调试 | Flutter 单独调试 | 混合模式下 Flutter 调试 )

    文章目录 前言 一.单独运行 Flutter 代码时调试 Dart 代码 二.混合模式下 Flutter 调试 Dart 代码 三.相关资源 前言 Flutter 混合开发集成步骤 : ① 在 And ...

  5. 如何用 Flutter 实现混合开发?闲鱼公开源代码实例

    2019独角兽企业重金招聘Python工程师标准>>> 具有一定规模的 App 通常有一套成熟通用的基础库,尤其是阿里系 App,一般需要依赖很多体系内的基础库.那么使用 Flutt ...

  6. flutter开发android部分页面,Flutter(Android 混合开发)

    前言 Flutter 支持作为 android Moudle 出现在项目中.这样就可以在 已有的项目中 使用. 虽然现在Flutter 比较受关注,但是和weex 一样 ,大部分都只是在观望 不是真正 ...

  7. 基于snipe-it v5.1.2开源资产管理软件二次开发安卓端管理app

    snipe-it v5.1.2这个软件安装方法,看我之前的文章,今天来教大家用e4a中文编程软件编写安卓端的登录,后面再编写新建资产,编辑资产,扫描资产,查询资产,审计资产,借出资产,回收资产,打印资 ...

  8. Flutter插件(Plugin)开发 - Android视角,flutter安装视频

    // 上报播放器的状态的EventChannel EventChannel status_channel = new EventChannel(registrar.messenger(), " ...

  9. Flutter 桌面应用开发配置与打包 Flutter Windows 桌面软件开发

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

最新文章

  1. 「龙书」之后,又一编译佳作诚招译者
  2. 一起学nRF51xx 23 -  s130蓝牙API介绍
  3. 浅谈Base64编码算法
  4. 中南大学张昊:我非常期待基于AI的图像视频编码技术的创新
  5. 24.C#LINQ TO XML(十二章12.3)
  6. 获取当地天气_Mac 天气预报动态壁纸工具Living Weather HD 4.4.4
  7. WindowsXP命令行修改服务启动选项
  8. Brainstorm-the walkthrough example: Image Classification
  9. 【剑指offer】面试题29:顺时针打印矩阵(Java)
  10. Dubbo常见面试题与答案
  11. 曝光:一位来自微软公司的粉丝 写给我的信
  12. windows 截屏快捷键x220_电脑截屏快捷键是什么啊
  13. 使用itertools建立词表
  14. 眼动数据分析基础_数据处理
  15. wonderware配置-Intouch读取Historian数据 8
  16. 阿里巴巴2015实习面试
  17. 赵雯北京大学计算机动画系,北京大学艺术类、设计类考研辅导课程
  18. 论文解读:FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradig
  19. linux 开机运行应用程序
  20. matplotlib刻度值使用科学记数法

热门文章

  1. 2014年中回首与展望
  2. C# 对象深拷贝、浅铐贝、直接拷贝(转)
  3. ASP.NET基础教程-SqlConnection对象-使用连接事件
  4. Oracle 数据库DBA管理手册!
  5. node中npm安装模块的网络问题
  6. git基础: 《获取Git仓库》学习笔记
  7. select count
  8. selenium + python 登录页面,输入账号、密码,元素定位问题
  9. 消费者最关心的就是你的用户体验,以及保证产品品质,保证价格和服务
  10. A better way to learn D3 js - iLearning D3.js