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

手机网站用什么软件开发html5 企业网站

手机网站用什么软件开发,html5 企业网站,wordpress 手机维修,市场监督管理局举报电话文章目录背景一、普通的页面跳转和返回1.普通跳转2.带参数跳转3.普通返回4.返回到首页二、返回主Tab的指定页面1.思考:通过发消息2.思考:全局控制Tab的控制器背景 在开发中,难免会遇到从子页面或者更深层的页面,跳转到主Tab页面的…

文章目录

  • 背景
  • 一、普通的页面跳转和返回
    • 1.普通跳转
    • 2.带参数跳转
    • 3.普通返回
    • 4.返回到首页
  • 二、返回主Tab的指定页面
    • 1.思考:通过发消息
    • 2.思考:全局控制Tab的控制器


背景

在开发中,难免会遇到从子页面或者更深层的页面,跳转到主Tab页面的指定哪个Tab?举个栗子,App中有四个Tab(A、B、C、D),如果从A页面跳转到C页面,如果做?或者说从B的子页面,跳转到D?

我们先看看普通页面的跳转和返回是怎么做的?

一、普通的页面跳转和返回

1.普通跳转

普通的页面跳转M->N,从M页面跳转到N页面,使用下面的方法是可以。

      this.getUIContext().getRouter().pushUrl({url: "pages/NPage"});

2.带参数跳转

普通的页面跳转M->MDetailPage,从M页面跳转到M的详情页面(MDetailPage),使用下面的方法是可以。

// M页面跳转操作this.getUIContext().getRouter().pushUrl({url:"pages/MDetailPage",params: {id: this.model.id}})// M的详情页面MDetailPage接收参数aboutToAppear() {// 获取传递的M数据const params = this.getUIContext().getRouter().getParams() as Record<string, string>;if (params && params['id']) {this.id = params['id'] as string;}}

3.普通返回

普通的页面跳转N->M,从N页面跳转到M页面

this.getUIContext().getRouter().back();

4.返回到首页

从任何一个子页面,返回到导航栈的第一个页面。

this.getUIContext().getRouter().back(1);

二、返回主Tab的指定页面

这个时候,使用普通的跳转和返回达不到这个效果了?只能实现返回到主Tab页面,但是指定哪个Tab该怎么实现呢。

1.思考:通过发消息

我想到了使用flutter中的eventBus,发个消息过来,在主tab页面接收后,指定tab切到具体的tab子页面中。

以为现在的鸿蒙知识,好像不能这样实现吧,我所知的是不可以的。

2.思考:全局控制Tab的控制器

我仔细想了一下,好像可行。搞个单例类,搞两个属性,一个是Tab的控制器,一个是记录当前是哪个Tab。

  • 使用修饰符@ObservedV2装饰这个单例类,使用修饰符@Trace装饰这两个属性,来监听这两个属性的变化。
@ObservedV2
export class AppModelManager{static instance:AppModelManager;constructor() {}static getInstance(){if(AppModelManager.instance == null){AppModelManager.instance = new  AppModelManager();}return AppModelManager.instance;}@Tracepublic currentTabIndex:number = 0;@Tracepublic tabsController: TabsController = new TabsController();}
  • 然后在主Tab中,使用这两个属性。将原来使用tabsController和currentTabIndex的地方,换成单例中的这个。
/// 在原来使用tabsController的地方,换成单例类中的tabsControllerTabs({ barPosition: BarPosition.End, controller: AppModelManager.getInstance().tabsController }) {...... }.onChange((index: number) => {AppModelManager.getInstance().currentTabIndex = index;}).width('100%').height('100%')}.width('100%').height('100%')}/// 在原来使用currentTabIndex的地方,换成单例类中的currentTabIndex@Builder TabBuilder(title: Resource, index: number, normalImg: Resource, selectedImg: Resource) {Column() {Image(AppModelManager.getInstance().currentTabIndex === index ? selectedImg : normalImg).width(24).height(24)Text(title).fontSize(12).fontColor(AppModelManager.getInstance().currentTabIndex === index ? $r('app.color.tab_selected') : $r('app.color.tab_normal')).margin({ top: 4 })}.width('100%').height('100%').justifyContent(FlexAlign.Center).onClick(() => {AppModelManager.getInstance().currentTabIndex = index;AppModelManager.getInstance().tabsController.changeIndex(index);})
  • 在你需要返回的页面中,调用单例中的tabsController和currentTabIndex即可。别忘了最后调用back(1)返回到主页面。
      CacheDataManager.getInstance().currentTabIndex = 2;CacheDataManager.getInstance().tabsController.changeIndex(2);this.getUIContext().getRouter().back(1);

至此功能实现了。

http://www.dtcms.com/a/462762.html

相关文章:

  • IDEA在plugins里搜不到mybatisx插件的解决方法
  • 广州网站建设多少钱深圳网上申请个人营业执照
  • 高端响应式网站建设wordpress动态插件
  • fastadmin列表头部加按钮,点击弹出窗口提交数据保存
  • 网站进行中英文转换怎么做新手销售怎么和客户交流
  • MySQL索引调优之索引顺序是否应该“匹配查询书写顺序”?
  • 安阳网站建设开发用五百丁做名字的简历网站
  • 企业做网站的注意事项沈阳商城网站开发
  • 堆:数组中的第K个最大数
  • 如何添加网站 ico图标小游戏开发需要多少钱
  • printf输出乱码的解决办法
  • 汕头做网站优化的公司两个wordpress
  • 网站域名在哪里如何建立一个免费的网站
  • 重庆交通建设监理协会网站建设银行招标网站
  • 温州企业自助建站系统虚拟主机怎么设计网站吗
  • 网站备案表是什么纪检监察网站建设背景
  • FDC1004学习笔记二:读写数据
  • 双剑合璧:Microsoft Agent Framework——Python与.NET的AI智能体协奏曲
  • 行动比空想更有力量。哪怕只是一小步,也是通向目标的开始。
  • 学习笔记--分页查询 条件分页查询
  • 东莞网络推广网站部门网站建设管理
  • 流式推理 vs 训练模式详细对比
  • 一个酷炫的烟花网站
  • 【AES加密专题】2.AES头文件详解
  • 腾讯员工月薪多少郴州网站seo
  • 网站建设培训个人网络服务器
  • STM32H743-ARM例程14-FATFS
  • 具有营销型网站的公司有哪些网页设计个人简介代码
  • 网站的交互体验网站备案单位的联系方式
  • 百度logo在线设计生成器seo关键词推广公司