当前位置:   article > 正文

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

java调用flutter

一、

在Android 项目中集成Flutter

1、打开Gradle Scripts下的settings.gradle

 

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

 

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

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

3、打开项目的build.gradle

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

 

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

  1. compileOptions{
  2. sourceCompatibility JavaVersion.VERSION_1_8
  3. targetCompatibility JavaVersion.VERSION_1_8
  4. }

添加下面依赖

虽然项目中并没有创建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的代码

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

3、

运行结果:

 

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

 

四、

 

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

 

 

 

 

 

 

 

注:

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

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

 

在MyApp中作为参数传递给MyHomePage

 

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

 

运行后结果

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/721477
推荐阅读
相关标签
  

闽ICP备14008679号