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

茶楼网站常熟专业做网站

茶楼网站,常熟专业做网站,建筑单位企业资质,html注册登录模板一、整体架构概览 Android Navigation 组件是一个层次化、可扩展的导航框架,其核心组件协同工作实现应用导航管理: 二、核心组件详解 1. NavHostFragment - 导航容器 角色:导航的物理容器和起点 职责: 提供 Fragment 容器&…

一、整体架构概览

Android Navigation 组件是一个层次化、可扩展的导航框架,其核心组件协同工作实现应用导航管理:

二、核心组件详解

1. NavHostFragment - 导航容器

  • 角色:导航的物理容器和起点

  • 职责

    • 提供 Fragment 容器(通常是 FragmentContainerView

    • 创建并持有 NavController 实例

    • 拦截系统返回键事件

    • 实现 NavHost 接口

  • 关键生命周期

    public void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 创建 NavControllermNavController = new NavController(requireContext());mNavController.setLifecycleOwner(this);// 设置导航图if (mGraphId != 0) {mNavController.setGraph(mGraphId);}
    }

2. NavController - 导航控制中心

  • 角色:导航系统的中央协调器

  • 核心职责

    • 管理当前导航状态

    • 处理导航操作(navigate/popBackStack)

    • 维护返回栈(NavBackStack

    • 协调各种 Navigator

  • 关键数据结构

    public class NavController {private NavGraph mGraph; // 当前导航图private final Deque<NavBackStackEntry> mBackStack = new ArrayDeque<>();private final NavigatorProvider mNavigatorProvider;private Context mContext;// ...
    }

3. NavigatorProvider - 导航器工厂

  • 角色Navigator 的注册中心和工厂

  • 职责

    • 注册/注销 Navigator

    • 按类型提供 Navigator 实例

    • 支持自定义 Navigator

  • 核心实现

    public class NavigatorProvider {private final HashMap<String, Navigator<? extends NavDestination>> mNavigators = new HashMap<>();public final <T extends Navigator<?>> T getNavigator(@NonNull Class<T> clazz) {String name = clazz.getSimpleName();Navigator<? extends NavDestination> navigator = mNavigators.get(name);// ...return (T) navigator;}
    }

4. Navigator - 导航执行器

  • 角色:具体导航操作的执行者

  • 职责

    • 处理特定类型目标的导航

    • 实现导航和返回栈操作

    • 管理目标生命周期

  • 类型体系

5. NavGraph - 导航蓝图

  • 角色:导航路线的抽象定义

  • 结构

    public class NavGraph extends NavDestination {private int mStartDestinationId;private final HashMap<Integer, NavDestination> mNodes = new HashMap<>();// ...
    }

  • 关键元素

    • 起始目标(startDestination

    • 目标集合(NavDestination

    • 动作连接(NavAction

6. NavDestination - 导航目标

  • 角色:导航的终点单元

  • 类型

    • FragmentDestination

    • ActivityDestination

    • DialogDestination

    • NavGraph(嵌套图)

  • 关键属性

    public abstract class NavDestination {private int mId;private String mLabel;private Bundle mDefaultArguments;private List<NavAction> mActions = new ArrayList<>();// ...
    }

三、组件协作流程

1. 初始化流程

2. 导航执行流程(navigate())

3. 返回栈管理流程(popBackStack())

四、关键设计解析

1. 责任链模式

  • NavController 作为中央调度器

  • 将具体导航操作委托给专门的 Navigator

  • 符合单一职责原则

2. 抽象工厂模式

  • NavigatorProvider 作为工厂

  • 隐藏具体 Navigator 的创建细节

  • 支持灵活扩展

3. 组合模式

  • NavGraph 包含多个 NavDestination

  • NavDestination 可以是原子目标或嵌套图

  • 实现导航结构的树形组织

4. 状态管理

  • NavBackStack 维护导航状态

  • 每个条目包含:

    public class NavBackStackEntry {private final NavDestination mDestination;private final Bundle mArgs;private final Lifecycle mLifecycle;// ...
    }
  • 完整的生命周期管理

http://www.dtcms.com/wzjs/822134.html

相关文章:

  • 官方网站开发与定制七台河新闻综合
  • 重庆景点攻略太原百度快速优化
  • 嘉兴市做外贸网站的公司网站设计效果专业乐云seo
  • 关于h5的网站豪华网站建设
  • 广南网站建设推广普通话宣传周
  • 本溪网站设计太原市建设银行网站首页
  • 医疗企业网站模板手机制作广告的app
  • 建设电商网站哪个平台比较好wordpress 人力资源
  • 专用主机方式建设网站深圳网站建设推广方案
  • 网站百度seo关键词优化上海网站制作智能 乐云践新
  • wordpress站内信群发wordpress 主题 前端
  • 从零开始自己做外贸网站和海外网络营销project 网站开发计划
  • 网站制作生成器微网站开发需求文档
  • 德化规划与建设局网站郑州直播网站建设公司
  • 南昌市建设规费标准网站南通网站流量优化
  • 玉环城乡建设规划局网站什么是网络推广营销
  • 广州 网站 设计seo做得好的企业网站
  • 工信部网站备案文件全景网站制作教程
  • 外贸公司网站源码代理一款网页游戏需要多少钱
  • 济南做网站最好的单位专门做mod的网站
  • 网站开发w亿玛酷1流量订制云南网站建设优化
  • 浙江网站建设推广甲蛙网站建设
  • 门户网站建设请示人才网站运营建设 材料
  • 网站短时间怎么做权重上海做外贸网站建设
  • 做网站制作课程总结网页制作基础教程教学设计
  • 做一套网站开发多少钱no7wordpress
  • 南宁网站建设 超博网络wordpress关闭邮件验证
  • 网站怎样绑定域名访问wordpress怎么注册用户名
  • 无锡建设公司网站wordpress工单系统.
  • 网站设计素材下载手机域名解析错误