这是给学过 Flutter,可是没学过 Android 开发的人看的。java
setBinding(new Binding([gradle: this])) // new evaluate(new File( // new settingsDir.parentFile, // new 'flutter_demo/.android/include_flutter.groovy' // new ))同时,代码上方会弹出同步提示,点击 Sync Now
compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 }在 dependencies 中填入
implementation project(':flutter')点击上方的 Sync Now
//...省略代码 import io.flutter.facade.Flutter; // new import android.widget.FrameLayout; // new // import io.flutter.view.FlutterView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { //...省略代码 fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); onLoadFlutter(view); // new } }); } // 用 view 方式显示 Flutter 页面 public void onLoadFlutter(View view) { View flutterView = Flutter.createView(this, getLifecycle(), "route1"); //route1 为 flutter 的路由名 FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(600, 800); layoutParams.topMargin = 100; addContentView(flutterView, layoutParams); // 这样也行 // final FlutterView flutterView = Flutter.createView(this, getLifecycle(), "route1"); //route1 为 flutter 的路由名 // final FrameLayout layout = (FrameLayout) findViewById(R.id.flutter_container); // layout.addView(flutterView); } //...省略代码 }如图所示:
import android.support.v4.app.FragmentTransaction; //引入库 public void onLoadFlutter(View view) { FragmentTransaction transaction= getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.someContainer,Flutter.createFragment("route1")); transaction.commit(); }
在content_main.xml中添加个CardView(其它Container都行),并把id设置成 someContainer,而后在设置一下layout(布局)既可。
运行图以下
android