首页 > 其他分享 >自定义FlutterFragment的初始化路由没有生效

自定义FlutterFragment的初始化路由没有生效

时间:2024-06-04 10:34:59浏览次数:25  
标签:初始化 FlutterFragment 自定义 flutterEngine configureFlutterEngine FlutterEngine 路由

问题:在自定义FlutterFragment的configureFlutterEngine方法中初始化页面路由发现一直是'/'

原因:当 configureFlutterEngine 方法被调用时,Flutter 已经完成了初始化并设置了默认的初始路由(通常是 '/')。

在 Android 项目中,FlutterFragmentonAttach 方法中创建 FlutterEngine。在 FlutterFragment 的生命周期中,onAttach 方法早于 configureFlutterEngine方法。也就是说,在 configureFlutterEngine 被调用到之前,FlutterEngine 已经初始化完成并且已经解析了默认的初始路由。

因此,你在 configureFlutterEngine 中设置初始路由,这是在 FlutterEngine 解析默认初始路由之后的事情,这也解释了为什么你的设置没有生效。

也就是说,如果要在的 configureFlutterEngine 方法中设置初始路由,你需要创建自己的 FlutterFragment 并覆盖 provideFlutterEngine 方法。在这个方法中,先创建一个 FlutterEngine,设置好初始路由,然后再返回它。

class CustomFlutterFragment : FlutterFragment() {

    override fun provideFlutterEngine(context: Context): FlutterEngine {
        val flutterEngine = FlutterEngine(context)
        flutterEngine.navigationChannel.setInitialRoute("/shoppingCart")
        flutterEngine.dartExecutor.executeDartEntrypoint(
            DartExecutor.DartEntrypoint.createDefault()
        )
        return flutterEngine
    }

    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        
        //GeneratedPluginRegistrant.registerWith(flutterEngine)

        Log.d("flutter", "CustomFlutterFragment configureFlutterEngine: ")
  }
}

  

标签:初始化,FlutterFragment,自定义,flutterEngine,configureFlutterEngine,FlutterEngine,路由
From: https://www.cnblogs.com/baiyi168/p/18230302

相关文章

  • 《计算机网络微课堂》实验21 VLAN间通信的实现方法:多臂路由
    本仿真实验的目的在于验证微软件的通信可以使用多臂路由来实现。‍‍‍我已经在仿真软件中构建好了我们理论课中所使用的网络拓扑,‍‍并且在各主机和路由器的各接口旁边都标注好了所需配置的IP地址和地址掩码。‍‍​​‍需要说明的是三个地址块/后面的数字24,‍‍表明地址......
  • 【C语言】自定义类型:结构体(建议收藏!!!)
    结构体前言1、什么是结构体2、结构体类型的声明3、结构体变量的创建和初始化4、结构成员访问操作符5、结构体内存对齐6、存在内存对齐的原因7、结构体传参8、结构体实现位段前言我们已经学了很多数据类型,列如int,char,float,double等。但还不能满足需求,在我们......
  • vue3中ref绑定自定义组件没有获取到dom?
    问题<template><my-compref="test"/></template><scriptlang="ts"setup>consttest=ref()onMounted(()=>{console.log(test.value)})</script>打印出来的是一个proxy对象解决办法1.如果ref绑定的是一个普通的d......
  • 关于路由表及路由的介绍
    一、路由表介绍1.路由表条目介绍条目名称表示含义Destination/Mask表示此路由的目的网络地址与网址掩码Proto(Protocol)表示此路由的协议类型Pre(Preference)表示此路由的路由协议优先级,越小越优先Cost表示路由开销,即到达同一目的地址有多条路由,且具有相同优先级时,开销越小越优先......
  • VS Code自定义代码模板
    VSCode自定义代码模板VSCode作为一款轻量级的编辑器,使用体验极佳,具有很多有用的小功能,也有着非常丰富的插件,日常写代码的时候自动补全和各种模板能够有效的提高编码的效率,这里介绍两种我常使用的自定义代码块或者模板的设置方法。集成自定义代码段VSCode自带了用户定......
  • 实验9 静态路由配置
    实验9静态路由配置一、原理描述二、实验目的三、实验内容四、实验配置五、实验步骤一、原理描述网络中的每个路由器都会维护一张路由表或转发表。路由表的表项记录着目的网络信息以及下一跳I地址。路由表可以手动配置,也可以通过路由算法动态生成。静态路由......
  • 配置路由
    目录1.在构建的vue3项目中安装vue-router2.创建路由3.挂载router4.配置路由5.使用路由组件6.测试1.在构建的vue3项目中安装vue-routernpminstallvue-router--save2.创建路由在src/router/index.ts//通过vue-router插件实现模板路由配置import{createRouter,create......
  • HarmonyOS NEXT星河版之自定义List下拉刷新与加载更多
    文章目录一、加载更多二、下拉刷新三、小结一、加载更多借助List的onReachEnd方法,实现加载更多功能,效果如下:@ComponentexportstructHPList{//数据源@PropdataSource:object[]=[]//加载更多是否ing@StateisLoadingMore:boolean=false......
  • 通过精准的内容分发和优化的路由策略,确保企业客户能够以高速稳定的方式接入互联网,访问
    为了满足企业对于高质量、高效率互联网接入的需求,中国联通国际推出了ChinaDIA及GlobalDIA产品,旨在为企业客户提供专属IP地址和独享带宽,保证企业客户能够以更加稳定、高速的方式访问全球互联网内容。产品优势带宽独享:中国联通国际拥有丰富的全球网络资源,凭借行业领先的技术和......
  • 「AntV」X6 自定义vue节点(vue3)
    官方文档本篇文档只讲解vue3中如何使用,vue2的可以参考下官方文档安装插件@antv/x6-vue-shape添加vue组件既然使用vue节点,那么我们就需要准备一个vue的组件,这个组件就是节点的一些样式,根据你们的ui自行写代码即可<template><div>节点名称</div><div>节点描述</div>......