Flutter Android 混合开发实战-集成与调用

33 篇文章 2 订阅

一、

在Android 项目中集成Flutter

1、打开Gradle Scripts下的settings.gradle

 

2、在settings.gradle中添加如下代码

 

下面所配置的路径一定要与项目的路径一致,也就是说这个flutter_module一定要与FlutterHybirdAndroid原生工程在同一个目录下

setBinding(new Binding([gradle:this]))
evaluate(new File(settingsDir.parentFile,
        'flutter_module/.android/include_flutter.groovy'
))

3、打开项目的build.gradle

将minSdkVersion的版本改为16,因为flutter支持的最低版本是16

 

配置java的编译版本,使用java8进行编译

    compileOptions{
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

添加下面依赖

虽然项目中并没有创建flutter项目,但是上面在settings中配置的setBinding()和evaluate()会帮我们自动关联到一个flutter模块

 

运行项目:

运行成功说明flutter依赖添加是成功的

 

二、在java中调用Flutter module

在java中调用Flutter模块有两种方式:

--使用Flutter.createView API的方式

--使用FlutterFragment的方式

 

 

1、

 

2、

 

上面我们使用字符串“route1"来告诉Dart代码在Flutter视图中显示哪个小部件。Flutter模块项目的lib/main.dart文件需要通过window.defaultRouteName来获取Native指定要显示的路由名,以确定要创建哪个窗口小部件并传递给runApp:

三、在Android项目中调用flutter

1、在Android布局中添加占位符

 

2、添加调用Flutter的代码

                FragmentTransaction tx=getSupportFragmentManager().beginTransaction();
                tx.replace(R.id.someContainer, Flutter.createFragment("{name:'devio',dataList:['aa','bb','cc']}"));
                tx.commit();

3、

运行结果:

 

点击test按钮后,加载flutter界面

 

四、

 

五、为已存在的Android应用添加Flutter module依赖

 

 

 

 

 

 

 

注:

1、在dart中通过window.defaultRouteName来获取Native传过来的参数

要使用window对象一定要导入包‘dart:ui’

 

在MyApp中作为参数传递给MyHomePage

 

在MyHomePage中,通过initParams展示了传递过来的内容

 

运行后结果

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值