- 集成 Flutter Module到现有项目中,使用以下命令,在项目文件夹同级别目录下,记住同级别目录
flutter create -t module vp_flutter
-
创建完成后 磁盘中会多出来一个Flutter文件夹,和原生项目同级目录
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中已经存在的页面试试
~ 未完待续
网友评论