`
龙儿筝
  • 浏览: 689 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

鸿蒙Navigation页面生命周期

阅读更多

Navigation作为路由容器,其生命周期承载在NavDestination组件上,以组件事件的形式开放。其生命周期大致可分为三类,自定义组件生命周期、通用组件生命周期和自有生命周期。其中,aboutToAppear和aboutToDisappear是自定义组件的生命周期(NavDestination外层包含的自定义组件),OnAppear和OnDisappear是组件的通用生命周期。剩下的六个生命周期为NavDestination独有。生命周期时序如下图所示
img1

  • aboutToAppear:在创建自定义组件后,执行其build()函数之前执行(NavDestination创建之前),允许在该方法中改变状态变量,更改将在后续执行build()函数中生效。
  • onWillAppear:NavDestination创建后,挂载到组件树之前执行,在该方法中更改状态变量会在当前帧显示生效。
  • onAppear:通用生命周期事件,NavDestination组件挂载到组件树时执行。
  • onWillShow:NavDestination组件布局显示之前执行,此时页面不可见(应用切换到前台不会触发)。
  • onShown:NavDestination组件布局显示之后执行,此时页面已完成布局。
  • onWillHide:NavDestination组件触发隐藏之前执行(应用切换到后台不会触发)。
  • onHidden:NavDestination组件触发隐藏后执行(非栈顶页面push进栈,栈顶页面pop出栈或应用切换到后台)。
  • onWillDisappear:NavDestination组件即将销毁之前执行,如果有转场动画,会在动画前触发(栈顶页面pop出栈)。
  • onDisappear:通用生命周期事件,NavDestination组件从组件树上卸载销毁时执行。
  • aboutToDisappear:自定义组件析构销毁之前执行,不允许在该方法中改变状态变量。
0
0
分享到:
评论

相关推荐

    NavigationDrawer生命周期实例

    本实例深入探讨了`NavigationDrawer`与Activity生命周期的关系,通过日志输出来帮助开发者更好地理解和调试其行为。 首先,我们需要了解`NavigationDrawer`的基本原理。它是利用`SlidingPaneLayout`或者`...

    基于鸿蒙Navigation系统路由表和Hvigor插件的动态路由方案(源码+说明文档).zip

    支持组件的生命周期管理,以及跨多级页面参数回传接收; 支持自定义URL路径跳转,可通过拦截URL路径来跳转原生不同页面; 支持第三方Navigation的使用本库API; 支持启动模式、混淆、嵌套Navigation。 Technology ...

    ZRouter是基于鸿蒙Navigation系统路由表和Hvigor插件实现的动态路由方案,以解决模块间的耦合问题

    ZRouter是基于鸿蒙Navigation系统路由表和Hvigor插件实现的动态路由方案,以解决模块间的耦合问题

    Fragment的生命周期

    Fragment的生命周期与Activity紧密关联,理解Fragment的生命周期对于开发高效、稳定的应用至关重要。 Fragment的生命周期可以分为三个主要阶段:初始阶段、可见性阶段和销毁阶段。 1. **初始阶段** - `onAttach()...

    fragment生命周期代码示例

    fragment 代码示例

    HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

    在“HCIA-HarmonyOS应用开发工程师 V2.0 ...这些知识点涵盖了HarmonyOS应用开发的基础概念、组件使用、通信机制、应用生命周期、UI设计以及开发工具的使用技巧,是成为一名合格的HarmonyOS应用开发工程师必备的知识。

    ZRouter是基于鸿蒙Navigation系统路由表和Hvigor插件实现的动态路由方案,以解决模块间的耦合与通信问题

    ZRouter是基于鸿蒙Navigation系统路由表和Hvigor插件实现的动态路由方案,以解决模块间的耦合与通信问题

    HarmonyOS应用开发框架HarmonyOS应用开发-实现底部导航栏功能

    在 HarmonyOS 应用开发中,底部导航栏(Bottom Navigation)是用户界面设计的重要组成部分,它为用户提供了一种直观、便捷的方式,以便在多个主功能之间进行切换。本教程将深入探讨如何在 HarmonyOS 应用中实现底部...

    ReactNative Navigation路由传递数据到下一个页面

    接着上面 Navigation 继续学习传递数据给下一个页面 onPress={() => this.props.navigation.navigate('Detail',{info:movie.title,movie:movie})} 这样,跳转到详情页,可以传递 电影标题 movie.title 和电影对象 ...

    AndroidLifeCycle,处理android生命周期的简单方法.zip

    在Android应用开发中,理解并妥善处理Android组件(如Activity、Service、BroadcastReceiver等)的生命周期至关重要。AndroidLifeCycle项目正是这样一个开源项目,它提供了一种简单有效的方法来管理Android应用中的...

    用Fragment+Viewpager+BottomNavigationView实现界面切换

    6. **连接ViewPager和BottomNavigationView**:最后,你需要确保`BottomNavigationView`的菜单项点击和`ViewPager`的页面切换同步。这通常通过在`OnNavigationItemSelectedListener`中调用`ViewPager.setCurrentItem...

    BottomNavigationView+ViewPager+Fragment

    它通常用于实现横向滑动的页面切换效果,与`FragmentPagerAdapter`或`FragmentStatePagerAdapter`配合使用,后者负责管理`Fragment`的生命周期和页面的创建。`ViewPager`通过`onPageSelected`回调可以监听页面切换...

    Harmonyos博客文章.zip

    HarmonyOS,全称为鸿蒙操作系统,是华为公司自主研发的一款面向未来、全场景的分布式操作系统,旨在为各种智能设备提供统一的操作平台。HarmonyOS的核心设计理念是打破设备间的壁垒,实现跨平台、跨设备的无缝协同...

    Android Material Bottom Navigation使用教程

    Material Design的组件库包含了许多元素,如按钮、输入框、导航抽屉等,而Bottom Navigation是其中之一。本教程将详细介绍如何在Android项目中使用Material Design的Bottom Navigation。 Bottom Navigation是一种...

    iOS 实现页面跳转

    我们将讨论两种主要的页面跳转方式:模态(Modal)展示和导航控制器(Navigation Controller)的使用,同时也会涉及控件的生命周期以及UIButton等基础控件的属性。 一、模态页面跳转 模态页面跳转通常用于向用户...

    ROS与navigation教程.pdf

     ROS 与 navigation 教程-目录  ROS 与 navigation 教程-设置机器人使用 TF  ROS 与 navigation 教程-基本导航调试指南  ROS 与 navigation 教程-安装和配置导航包  ROS 与 navigation 教程-结合 RVIZ 与...

    BottomNavigationView去除菜单项动画效果代码

    在Android开发中,BottomNavigationView(底部导航视图)是一个常用组件,用于在多个视图间进行切换。在设计用户界面时,我们有时需要对它的默认行为进行自定义,比如在这个场景下,我们要去除 BottomNavigationView...

    Android Material Design之TabLayout + NavigationView联合使用

    - 根据NavigationView选择切换Tab:在监听器中,根据用户选择的菜单项,可以切换ViewPager的当前页面,或者更新TabLayout的选中状态。 总结来说,TabLayout和NavigationView在Android应用中提供了强大的导航功能。...

    AppNavigation官方例子资源

    例如,`main_navigation.xml`可能包含了主屏幕与其它功能页面的导航关系。 2. **NavGraph**:Navigation组件的主要构建块,它表示了一个可以导航的图。开发者可以通过编程或使用Android Studio的Navigation Editor...

    Silverlight页面跳转及页面间传递参数

    - **使用框架状态**: 可以利用Navigation Framework的`NavigationService`的`BackStack`和`ForwardStack`来存储和传递数据,但这需要在页面生命周期内管理。 - **依赖属性和服务**: 创建一个公共的依赖属性或者...

Global site tag (gtag.js) - Google Analytics