Flutter集成到现有Android项目中

  • 集成 Flutter Module到现有项目中,使用以下命令,在项目文件夹同级别目录下,记住同级别目录
flutter create -t module vp_flutter
  • 创建完成后 磁盘中会多出来一个Flutter文件夹,和原生项目同级目录


    Flutter集成到现有Android项目中_第1张图片
    image.png
  • 然后配置 Project下Setting.grade文件 然后 Sync 即可

//加入下面配置
setBinding(new Binding([gradle: this]))
evaluate(new File(
        settingsDir.parentFile,
        'vp_flutter/.android/include_flutter.groovy'
))
  • 上面的Sync之后,走下面命令,引入flutter,之所以加上 exclude group 是为了防止和项目中已经引入的库重复
   implementation(project(':flutter'),{
        exclude group: 'com.android.support'
    })
  • 好了 这就把Flutter集成到我们项目中了,我们先拿Flutter自带的View覆盖掉原生View试试

  • 注意这里用到了 lifecycle库,这个库是在 support 26.1.0 之后才有的,如果 版本低了,需要升级。

package com.example.jiayuanfa.myapplication

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.FrameLayout
import io.flutter.facade.Flutter

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val flutterView = Flutter.createView(this@MainActivity,lifecycle,"route1")
        val layout = FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)
        addContentView(flutterView, layout)

    }
}

  • 跑一下
Flutter集成到现有Android项目中_第2张图片
image.png
  • 接下来 跑一下Flutter中已经存在的页面试试

~ 未完待续

你可能感兴趣的:(Flutter集成到现有Android项目中)