当前位置: 首页 > news >正文

大连华南网站制作公司盐城建设公司网站

大连华南网站制作公司,盐城建设公司网站,东莞网页制作公司,响水做网站哪家最好Flutter 内嵌 android 原生 View以及相互跳转 一. 内嵌android 原生View二、android 与 flutter 相互跳转 一. 内嵌android 原生View 在android 工程的包名下#xff0c;也可在MainActivity创建 android 原生view #xff0c;继承PlatformView // 1.自定义textview public st… Flutter 内嵌 android 原生 View以及相互跳转 一. 内嵌android 原生View二、android 与 flutter 相互跳转 一. 内嵌android 原生View 在android 工程的包名下也可在MainActivity创建 android 原生view 继承PlatformView // 1.自定义textview public static class MyTextView implements PlatformView{ private TextView textView ;/**** param context* param messenger 用于消息传递* param id 生成时会分配一个唯一 ID* param maps Flutter 传递的初始化参数。*/public MyTextView(Context context ,BinaryMessenger messenger,int id,MapString,Object maps) {textView new TextView(context);textView.setText(我是来自android原生的textView);if (maps ! null){String text maps.get(text).toString();textView.setText(text);}textView.setTextColor(Color.RED);}// 返回要嵌入 Flutter 层次结构的Android ViewNullableOverridepublic View getView() {return textView;}//释放此View时调用此方法调用后 View 不可用此方法需要清除所有对象引用否则会造成内存泄漏。Overridepublic void dispose() {}} 新建MyViewFactory.java注册PlatformView public class MyViewFactory extends PlatformViewFactory {private final BinaryMessenger messenger;public MyViewFactory(BinaryMessenger messenger) {super(StandardMessageCodec.INSTANCE);this.messenger messenger;}SuppressWarnings(unchecked)Overridepublic PlatformView create(Context context, int id, Object args) {MapString, Object params (MapString, Object) args;return new MainActivity.MyTextView(context, messenger, id, params);}}创建plugin public class MyViewFlutterPlugin implements FlutterPlugin {Overridepublic void onAttachedToEngine(NonNull FlutterPluginBinding binding) {BinaryMessenger binaryMessenger binding.getBinaryMessenger();binding.getPlatformViewRegistry().registerViewFactory(plugins.nightfarmer.top/myview,new MyViewFactory(binaryMessenger));}Overridepublic void onDetachedFromEngine(NonNull FlutterPluginBinding binding) {} }在MainActivy 中注册 Overridepublic void configureFlutterEngine(NonNull FlutterEngine flutterEngine) {super.configureFlutterEngine(flutterEngine);flutterEngine.getPlugins().add(new MyViewFlutterPlugin());}在flutter 中使用 Container(width: 100,height: 100,child: AndroidView(viewType: plugins.nightfarmer.top/myview,creationParams: {text:Flutter传给AndroidTextView的参数},creationParamsCodec: StandardMessageCodec(),),),二、android 与 flutter 相互跳转 flutter 挑战到 原生Activity var platform MethodChannel(com.example.flutter/native_channel);void goToNativeActivity() {platform.invokeMethod(goToNative);}在MainActivty 中注册通道跳转到TestActivity private static final String CHANNEL com.example.flutter/native_channel;Overridepublic void configureFlutterEngine(NonNull FlutterEngine flutterEngine) {super.configureFlutterEngine(flutterEngine);flutterEngine.getPlugins().add(new MyViewFlutterPlugin());//注册通道new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler((call, result) - {// 接收来自Flutter的方法调用if (call.method.equals(goToNative)) {Intent intent new Intent(MainActivity.this, TestActivity.class);startActivity(intent);result.success(true);} else {result.notImplemented();}});}Activity 中跳转Flutter页面 在Manifest.xml 中注册 activityandroid:nameio.flutter.embedding.android.FlutterActivityandroid:themestyle/LaunchThemeandroid:configChangesorientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiModeandroid:hardwareAcceleratedtrueandroid:windowSoftInputModeadjustResize/根据路由跳转到Flutter 页面 startActivity(FlutterActivity.withNewEngine().initialRoute(/my_route) // .withCachedEngine(engine_id).build(currentActivity));跳转会与 2s的黑屏情况在MyApp中 public class MyApp extends Application {private FlutterEngine fe ;Overridepublic void onCreate() {super.onCreate();// 解决原生挑战到 flutter 会有2s 黑屏 的问题fe new FlutterEngine(this);fe.getDartExecutor().executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault());FlutterEngineCache.getInstance().put(engine_id,fe);}//当application 销毁的时候调用Overridepublic void onTerminate() {//销毁flutter引擎fe.destroy();super.onTerminate();} } 在清单文件中注册 MyApp applicationandroid:namecom.qxx.ai_score_manager_flutter.MyApp
http://www.hkea.cn/news/14340080/

相关文章:

  • 网站微信推广怎么做个人域名注册流程
  • 专注网站建设怎么样如何建设一个专业的网站
  • 同时做几个网站的seo办个网站需要多少钱
  • 钓鱼网站网站怎么做哈尔滨seo优化服务商
  • 为什么网站需要备案海外网站建设公司
  • 个人网站 用什么域名重网站建设
  • 学生想搭建网站怎么做分类目录 代码 wordpress
  • 医药网站建设方案wordpress媒体
  • 郑州淘宝网站推广 汉狮网络个人网站包含哪些内容
  • 网站建设报价方案对比安卓系统是谁开发的
  • 免费网站建设企业沈阳网站优化怎么做
  • 职工之家网站开发新闻稿天津建设工程信息网咨询电话
  • 开源的网站系统临沂建站平台
  • wordpress站点统计小工具nginx设置wordpress伪静态
  • 网站设计制作 建网站建设网站用户名是什么
  • 韶关营销网站开发联系方式WordPress整站搬家插件
  • 哈尔滨网站建设哪家有好看影视大全免费下载安装
  • 南京网站开发南京乐识专心企业网站类型主要包括
  • 医院网站建设的重要性wordpress开发教程
  • 郑州网站建设流程wordpress 有广告插件
  • 做网站都是花钱吗东莞百度网络推广
  • 网站建设的基础常识铜陵做网站的公司
  • iis做外网站点保定关键词排名系统
  • 哪个网站免费h5模板多.net core 做网站
  • vs2015 asp网站开发打开这个网站
  • 成都网站seo服务网站开发采用了哪些技术
  • 大型门户网站建设需要哪些技术和注意事项wordpress完全版教材
  • 做网站优化排名我做微信淘宝客网站有哪些
  • 网站搭建价格表南漳网站设计
  • 网站新版品牌网官网查询