方法一:aar集成
1愁溜,Android原工程需要使用Java8編譯
在工程 build.gradle里面疾嗅,android{ }下修改
2,生成aar文件
這一步需要先將Flutter Module生成aar祝谚,在Flutter Module的根目錄下運(yùn)行一下命令:
flutter build aar
3,使用aar
主工程的 build.gradle repositories 閉包 里面加入
然后把a(bǔ)ar包復(fù)制到libs目錄下面宪迟, app 的build.gradle里面添加依賴
編譯成功,就是大功告成
二交惯,源碼方式集成次泽,直接引入Flutter Module
1穿仪、 依次點(diǎn)擊左上角的File --> New --> New Flutter Project
2、然后選擇Flutter Module意荤。
3啊片,在項(xiàng)目根目錄settings.gradle文件中配置:
官網(wǎng)在跟項(xiàng)目同級(jí)創(chuàng)建 flutter module 是沒問題的。但是我們現(xiàn)在改了,應(yīng)該怎樣設(shè)置呢沮尿?
Tips:注意相對路徑的使用刊驴,重點(diǎn)是找到 include_flutter.groovy
案例一:
在 settings 所在目錄有 sub/my_flutter/.android/include_flutter.groovy 文件:
案例二:
在 settings 所在目錄的父目錄有 MyApp/sub/my_flutter/.android/include_flutter.groovy 文件
在APP下的Gradle文件中添加:
完成這幾步就順利完成在原生項(xiàng)目中集成flutter module了
-------------------------------------------------------------------------------------------------------------------------------------
接下來講原生界面與Flutter界面的跳轉(zhuǎn):
安卓原生界面跳轉(zhuǎn)到flutter界面有兩種方式,一種是使用flutterView笤昨,另一種是使用?FlutterFragment??
先新建一個(gè)activity,在oncreate方法中加入以下代碼:
Flutter.createView()方法返回的是一個(gè)FlutterView握恳,它繼承自View瞒窒,我們可以把它當(dāng)做一個(gè)普通的View,調(diào)用addContentView()方法將這個(gè)View添加到Activity的contentView中乡洼。我們注意到Flutter.createView()方法的第三個(gè)參數(shù)傳入了"flutter Route1"字符串崇裁,表示路由名稱,它確定了Flutter中要顯示的Widget束昵,接下來需要在之前創(chuàng)建好的Flutter Module中編寫邏輯了拔稳,修改main.dart文件中的代碼
在runApp()方法中通過window.defaultRouteName可以獲取到我們在Flutter.createView()方法中傳入的路由名稱,即"flutter Route1"锹雏,之后編寫了一個(gè)_widgetForRoute()方法巴比,根據(jù)傳入的route字符串顯示相應(yīng)的Widget。
最后在Mainacivity中加入跳轉(zhuǎn)事件:
最后發(fā)現(xiàn)原生的標(biāo)題欄還在逼侦,在style中加入透明標(biāo)題欄樣式
OK匿辩,如果你走到這里,恭喜你榛丢,大功告成铲球!