在原生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

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

查看所有标签

猜你喜欢:

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

Python金融大数据分析

Python金融大数据分析

[德] 伊夫·希尔皮斯科 / 姚军 / 人民邮电出版社 / 2015-12 / CNY 99.00

唯一一本详细讲解使用Python分析处理金融大数据的专业图书;金融应用开发领域从业人员必读。 Python凭借其简单、易读、可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析、处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的首选编程语言。《Python金融大数据分析》提供了使用Python进行数据分析,以及开发相关应用程序的技巧和工具。 《Python金融大......一起来看看 《Python金融大数据分析》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换