Android原生程序与Flutter交互具体实现
16lz
2021-12-04
最近要在Flutter项目的基础上加一个实时定位的功能(程序保活,不是用户强制关闭需要开启一个服务不断上传经纬度到服务器),所以只用Flutter实现不了这个功能,需要Android原生和Flutter交互才可以!
下面说一下Android原生和Flutter交互的步骤
1.首先创建一个flutter moudle
2.导入到Android原生项目中
在导入外部moudle的时候不能用常规方法进行图形化导入的!!!具体步骤在另外一篇文章查看具体的导入moudle方法
传送门:Android导入Flutter步骤
3.具体使用
在Android中的用Flutter界面实际上就是用一个view去承载Flutter
(1)创建一个显示Flutter的Activity
public class FlutterActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_flutter); final FlutterView flutterView = Flutter.createView( this, getLifecycle(), "route1" ); final FrameLayout layout = findViewById(R.id.flutter_container); layout.addView(flutterView); final FlutterView.FirstFrameListener[] listeners = new FlutterView.FirstFrameListener[1]; listeners[0] = new FlutterView.FirstFrameListener() { @Override public void onFirstFrame() { layout.setVisibility(View.VISIBLE); } }; flutterView.addFirstFrameListener(listeners[0]); }}
(2)修改Flutter中的main.dart
import 'dart:ui';import 'package:flutter/material.dart';void main() => runApp(_showForRoute(window.defaultRouteName));Widget _showForRoute(String route) { return 自己定义; }}
更多相关文章
- 背部如何画好?动漫人物背部画法步骤
- 《Android(安卓)串口驱动回眸:andriod虚拟机与串口调试精灵通讯》
- 阿里ARouter路由实现Android模块化开发
- 在android4.0.4的SDK里裁剪APK,把不需要的APK去除掉
- 如何在Android工程中导入其它工程作为引用,解决NoClassDefFound
- 修正Android摄像头API
- android studio3.6.3编译Telegram android 1482 问题小记(nebula
- Android(安卓)7.1 源码编译
- Android中手机声音调节步骤(Android学习随笔四)