flutter學習筆記四(在android項目中集成flutter)

前言
  • 最近在使用flutter仿寫公司的客戶端,在一段的時間的使用后發(fā)現(xiàn)flutter在一些常見的控件中,很多無法滿足,往往在輪子上需要耗費大量的時間,目前就我們的項目來看,相同的時間,如果改用Native去寫,我覺得兩者進度并沒有多大的差異,可能原生端反而會更快一些。
  • 在現(xiàn)有項目中集成Flutter,可以在flutter還沒有成熟的時期,去使用,追求共通點,同時對于已有客戶端進行混編
    現(xiàn)有項目中集成Flutter
  1. 創(chuàng)建Flutter module模板(我們在一個Android項目目錄同級目錄下創(chuàng)建模板工程)
    flutter create -t module my_flutter
  2. 添加Flutter module到Android項目中
  • 修改Android項目根目錄的settings.gradle,將Flutter module作為一個子工程添加到項目中
  // MyApp/settings.gradle
include ':app'                                     // assumed existing content
setBinding(new Binding([gradle: this]))                                 // new
evaluate(new File(                                                      // new
  settingsDir.parentFile,                                               // new
  'my_flutter/.android/include_flutter.groovy'                          // new
))                      
  • Sync一下,可以發(fā)現(xiàn)添加了兩個module到項目中了。其中一個是flutter的module,其中包含了一些簡單的封裝,供Java代碼調(diào)用。另一個是package_info的module,是一個Flutter插件就是獲取app名稱、包名、版本等信息
  1. 在app的build.gradle中添加依賴
 // MyApp/app/build.gradle
:
dependencies {
  implementation project(':flutter')
}
  • Sync一下,到此,這個Flutter module就被添加到了Android項目中了
    開始使用
  1. 在我的MainActivity.java里面寫代碼
// MainActivity.java
fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    View flutterView = Flutter.createView(
      MainActivity.this,
      getLifecycle(),
      "route1"
    );
    FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(600, 800);
    layout.leftMargin = 100;
    layout.topMargin = 200;
    addContentView(flutterView, layout);
  }
});
  • 上面我們使用字符串“route1”告訴Dart代碼在Flutter視圖中顯示哪個小部件。 Flutter模塊項目模板的lib / main.dart文件包含提供的路由字符串,需要哪些路徑字符串以及如何解釋它們?nèi)Q于我們自己
    -效果如下所示,但是我還是有些失望,黑一下的效果的確讓人難以接受,不過這項技術(shù)確實挺有吸引力,一起期待flutter的完善吧


    GIF.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,812評論 25 709
  • 本文列舉了項目開發(fā)使用Flutter會遇到的問題,以及如何使用Flutter module在現(xiàn)有項目中集成Flut...
    Q吹個大氣球Q閱讀 4,800評論 7 15
  • 大多數(shù)人都是“心隨境轉(zhuǎn)”,真正能夠做到“境隨心轉(zhuǎn)”,就是一個智者了?!爵斚仁ブ腔蹟嗾Z】
    魯先圣閱讀 334評論 0 1
  • 往事如風非風 來不及的種種 揮不去的種種 都飛舞在腦中 這真的很頭痛 好想瘋 舊創(chuàng)仍在痛 只好去吹風 逃避情慫恿 ...
    Y神牛閱讀 633評論 1 4
  • 各位MM,GG大家好! 都知道在社會和人際交往中美是你的優(yōu)勢,帥是你的魅力!把自己變得更美更帥能使你比別人少...
    驕傲浪子閱讀 1,112評論 0 16

友情鏈接更多精彩內(nèi)容