在plugin里边 弄一个flutter页面, 嵌套 Android 原生页面 demo

动态 未结 0 107
小小草
小小草 LV1 2023年9月23日 23:40 发表
1. 首先,在Flutter项目中创建一个新的插件,可以使用flutter create --template=plugin命令来创建。 2. 在插件的lib目录下创建一个新的Flutter页面,例如MyFlutterPage。 3. 在MyFlutterPage中添加一个Android原生View,可以使用AndroidView组件来实现。代码如下: ```dart class MyFlutterPage extends StatefulWidget { @override _MyFlutterPageState createState() => _MyFlutterPageState(); } class _MyFlutterPageState extends State { final String viewType = 'android_view'; @override Widget build(BuildContext context) { return AndroidView( viewType: viewType, creationParams: {'param': 'value'}, creationParamsCodec: const StandardMessageCodec(), ); } } ``` 4. 在Android项目中创建一个新的Activity,例如MyNativeActivity,并在其中添加一个布局文件,例如activity_my_native.xml。 5. 在布局文件中添加一个FrameLayout,用于显示Flutter页面。代码如下: ```xml ``` 6. 在MyNativeActivity中加载Flutter页面,并将其添加到FrameLayout中。代码如下: ```java public class MyNativeActivity extends AppCompatActivity { private FlutterEngine flutterEngine; private FlutterView flutterView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_native); // 初始化Flutter引擎 flutterEngine = new FlutterEngine(this); flutterEngine.getDartExecutor().executeDartEntrypoint( DartExecutor.DartEntrypoint.createDefault() ); // 创建FlutterView flutterView = new FlutterView(this); FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ); flutterView.setLayoutParams(layoutParams); // 将FlutterView添加到FrameLayout中 FrameLayout flutterContainer = findViewById(R.id.flutter_container); flutterContainer.addView(flutterView); // 加载Flutter页面 String route = "my_flutter_page"; flutterView.setInitialRoute(route); flutterView.attachTo
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复