看了一段時間的Flutter了,雖然覺得代碼嵌套得太厲害了,不過由于它的跨平臺掷邦,比起H5的速度還是可以讓人接受的抛蚁。看著看著就想著如何在原有的App上去集成 Flutter辩恼,官方也考慮到這種情況雇庙,也給了我們一個教程,今天參考著教程走一遍這個過程灶伊,加深下印象疆前。
首先我們模擬我們現(xiàn)有的App,新建一個原生App環(huán)境聘萨。
原有App路徑.png
然后在現(xiàn)有App根目錄的同級目錄下新建 Flutter 模塊竹椒。
新建Flutter模塊.png
然后需要在現(xiàn)有 App 配置我們的環(huán)境。
settings.gradle:
setBinding(new Binding([gradle: this])) // new
evaluate(new File( // new
settingsDir.parentFile, // new
'flutter_module/.android/include_flutter.groovy' // new
))
app/build.gradle:
implementation project(':flutter')
通過上面簡單的配置米辐,然后同步成功之后就可以在原有的 App 上調(diào)用我們的 Flutter 界面了胸完。
調(diào)用一:通過 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);
調(diào)用二:通過 Fragment 的形式:
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.replace(R.id.flutter_container, Flutter.createFragment("route1"));
tx.commit();
至此簡單的集成就完成了。后面還需要考慮到如何通過路由去顯示不同的界面儡循,如果進行傳參舶吗,如何進行數(shù)據(jù)的返回...