Skip to content

Latest commit

 

History

History
49 lines (34 loc) · 2.46 KB

README.md

File metadata and controls

49 lines (34 loc) · 2.46 KB

FlutterAndKotlinDemo

Demo developed with flutter kotlin and java


使用Flutter开发的一个demo,对于纯flutter的开发,我更倾向于使用flutter与原生混合使用的方式(目前2018年07月09日来说这种方式对于老项目,硬件相关的项目友好)。

Demo中演示了Flutter的使用,和如何在Flutter中调用Java、Kotlin Activity的问题,调用方式是通过MethodChannel不熟悉的可以看这里,MethodChannel可以完成Native端和Flutter的相互调用,可以完成。至于使用kotlin调用Flutter Widget(单独的一个界面)可以仿照项目中调用activity的方式扩展插件。

由于目前flutter还没有办法直接加载html代码。所以直接在详情页调用了webview插件,可以看到flutter的界面右上角有个debug字样,原生activity则没有


使用flutter module方式:

这种方式应该是官方比较推荐的方式,通过Flutter module中的flutter模块,本质上还是通过MethodChannel进行调用的。

具体是通过一个FlutterView来达到目的的,FlutterView可以看做是Android端的一个View,只不过里面包含的是Flutter的内容

fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    View flutterView = Flutter.createView(
      MainActivity.this,
      getLifecycle(),
      "route1"
    );
    FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(600, 800);
    layout.leftMargin = 100;
    layout.topMargin = 200;
    addContentView(flutterView, layout);
  }
});

详细的使用方式可以看这里

这个调用是异步的,目前看,Native端调用Flutter层效果并不是很理想。个人测试没有直接调用activity效果好

这个方案目前处于preview阶段,等beta版出现之后在看看具体效果。


下面分别是首页、Flutter的详情页、原生Activity