在原生App中嵌入Flutter

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

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

本文参考文档 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

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

查看所有标签

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

函数式算法设计珠玑

函数式算法设计珠玑

Richard Bird / 苏统华、孙芳媛、郝文超、徐琴 / 机械工业出版社 / 2017-4-1 / 69.00

本书采用完全崭新的方式介绍算法设计。全书由30个珠玑构成,每个珠玑单独列为一章,用于解决一个特定编程问题。这些问题的出处五花八门,有的来自游戏或拼图,有的是有趣的组合任务,还有的是散落于数据压缩及字串匹配等领域的更为熟悉的算法。每个珠玑以使用函数式编程语言Haskell对问题进行描述作为开始,每个解答均是诉诸于函数式编程法则从问题表述中计算得到。本书适用于那些喜欢学习算法设计思想的函数式编程人员、......一起来看看 《函数式算法设计珠玑》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具