在原生App中嵌入Flutter

栏目: Android · 发布时间: 5年前

内容简介:本文参考文档首先有一个可以运行的原生项目注意:最后一个参数最好写全路径!

本文参考文档 Add Flutter to existing apps

首先有一个可以运行的原生项目

  • 第一步:新建Flutter module

    Terminal进入到项目根目录,执行 flutter create -t module ‘module名字’ 例如: flutter create -t module flutter-native

    执行完毕,就会发现项目目录下生成了一个module

在原生App中嵌入Flutter
  • 第二步:同步Flutter module依赖

    进入到新生成的Flutter module目录下的.android目录下,命令是 cd .android/ ,然后执行 gradlew flutter:assembleDebug ,mac下 ./gradlew flutter:assembleDebug

    这过程根据网络情况,可能有点长。

    结束之后在 .android/Flutter/build/outputs/aar/ 目录下会生成 flutter-debug.aar

    在原生App中嵌入Flutter
  • 第三步:设置JDK版本

    在app的build.gradle文件中加入:

    compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 }

    在原生App中嵌入Flutter
  • 第四步:依赖Flutter module

    settings.gradle 中加入

include ':app'
setBinding(new Binding([gradle: this]))
evaluate(new File(
        settingsDir.parentFile,
        'FlutterNativeApplication/flutter_native/.android/include_flutter.groovy'
))
复制代码

注意:最后一个参数最好写全路径!

在app/build.gradle中

dependencies {
    ……
    implementation project(':flutter')
}
复制代码

到此准备过程结束,写代码测试一下,我使用的是Fragment方式。当然也有View的方式。

MainActivity.kt ↓

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
        setContentView(R.layout.activity_main)
        val tx = supportFragmentManager.beginTransaction()
        tx.replace(R.id.content, Flutter.createFragment("route"))
        tx.commit()
    }
}
复制代码

activity_main.xml ↓

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

</android.support.constraint.ConstraintLayout>
复制代码
在原生App中嵌入Flutter

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

连线力

连线力

杨国斌 / 邓燕华 / 广西师范大学出版社 / 2013-9 / 39.00

《连线力》,最关切我们未来的“思想@网络.中国”丛书之一,互联网中国传媒参考书。 中国网民在行动。在中国的广大网民中,普遍存在着对正义的渴望和追求,对弱者和小人物的同情, 对贪官污吏的痛恶,对政府的失望, 对权贵的嘲讽,对沟通的渴望,甚至对革命的呼唤。这些因素有着共同的内在逻辑,即情感逻辑。在这个意义上,情感汹涌的网络事件,是整个中国社会情感结构的脉络。 1994年,中国开通了全功能的......一起来看看 《连线力》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具