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

android navigation 用法详细使用

Navigation 的关键概念
1、Navigation Graph: 定义了应用内的所有导航目的地以及它们之间的连接。
2、NavHost: 一个 UI 元素,用于承载当前的导航目的地。
3、NavController: 管理目的地之间的导航。
4、Destination: 导航图中的一个节点,用户导航到该节点时,宿主会显示其内容。
5、Route: 用于导航的唯一标识符,可以是任何可序列化的数据类型
如何使用 Navigation

1、添加依赖:
在项目的 build.gradle 文件中添加 Navigation 组件的依赖

implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"

2、创建导航图:
在 res 目录下创建一个新的导航目录,然后创建一个导航资源文件(例如 nav_graph.xml)。
3、配置导航图:
在导航图 XML 文件中添加 fragment 标签来定义目的地,并使用 action 标签定义它们之间的导航操作。

<navigation xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/nav_graph"><fragmentandroid:id="@+id/homeFragment"android:name="com.example.HomeFragment"android:label="Home"><actionandroid:id="@+id/action_homeFragment_to_detailsFragment"app:destination="@id/detailsFragment" /></fragment><fragmentandroid:id="@+id/detailsFragment"android:name="com.example.DetailsFragment"android:label="Details" />
</navigation>

4、在 Activity 中设置 NavHost:
在 Activity 的布局文件中添加 NavHostFragment,并将其与导航图关联。

<fragmentandroid:id="@+id/nav_host_fragment"android:name="androidx.navigation.fragment.NavHostFragment"android:layout_width="match_parent"android:layout_height="match_parent"app:navGraph="@navigation/nav_graph" />

5、导航到目的地:
使用 NavController 进行导航。

val navController = findNavController(R.id.nav_host_fragment)
navController.navigate(R.id.action_homeFragment_to_detailsFragment)

6、传递参数:
可以通过 Bundle 传递参数。

val bundle = Bundle().apply {putString("KEY", "value")
}
navController.navigate(R.id.action_homeFragment_to_detailsFragment, bundle)

7、处理导航事件:
可以监听导航事件,例如 onNavigateUp 来处理返回按钮的事件。

override fun onSupportNavigateUp(): Boolean {return findNavController(R.id.nav_host_fragment).navigateUp()|| super.onSupportNavigateUp()
}

8、自定义动画:
可以为导航操作设置自定义动画。

<actionandroid:id="@+id/action_homeFragment_to_detailsFragment"app:destination="@id/detailsFragment"app:enterAnim="@anim/slide_in_right"app:exitAnim="@anim/slide_out_left"app:popEnterAnim="@anim/slide_in_left"app:popExitAnim="@anim/slide_out_right" />

相关文章:

android navigation 用法详细使用

Navigation 的关键概念 1、Navigation Graph: 定义了应用内的所有导航目的地以及它们之间的连接。 2、NavHost: 一个 UI 元素&#xff0c;用于承载当前的导航目的地。 3、NavController: 管理目的地之间的导航。 4、Destination: 导航图中的一个节点&#xff0c;用户导航到该节…...

uni-app在线预览pdf

这里推荐下载pdf.js 插件 PDF.js - Browse Files at SourceForge.net 特此注意 如果报 Promise.withResolvers is not a function 请去查看版本兼容问题 降低pdf.js版本提高node版本 下载完成后 在 static 文件夹下新建 pdf 文件夹&#xff0c;将解压文件放进 pdf 文件…...

SpringBoot--为什么Controller是串行的?怎样才能并行?

原文网址&#xff1a;SpringBoot--为什么Controller是串行的&#xff1f;怎样才能并行&#xff1f;-CSDN博客 简介 本文介绍SpringBoot为什么Controller是串行的&#xff1f;在什么场景下才能并行执行&#xff1f; 大家都知道&#xff0c;SpringBoot的Controller按理是并行执…...

C/C++ 中的未定义行为(Undefined Behavior, UB)

0. 简介 在 C/C 编程中&#xff0c;理解未定义行为&#xff08;UB&#xff09;及其相关概念至关重要。本文将对未定义行为进行详细解析&#xff0c;并通过实例展示其影响与处理方法。 1. 概念辨析 在 C/C 中&#xff0c;未定义行为容易与以下两个概念混淆&#xff1a; 1.1 …...

AJAX 1——axios体验、认识URL、常用请求方法、HTTP协议、错误处理、form-serialize插件

AJAX 1——axios体验、认识URL、常用请求方法、HTTP协议、错误处理、form-serialize插件 1.AJAX入门与体验axios 定义&#xff1a;浏览器与服务器进行数据通信的技术 体验axios库&#xff0c;与服务器通信 引入axios.js使用axios函数 <p class"my-p"></p&…...

Java-运算符

一、运算符是什么&#xff1f; 其实就如字面意思一样啦~就像数学中的运算符一样:(" "&#xff0c;" - "&#xff0c;" * "&#xff0c;" / "&#xff0c;" % "...)。 计算机的用途就如其名&#xff1a;运算。而既然要运算…...

ubutun nginx 安装和解决端口占用问题

目录 一、删除已有nginx 二、安装nginx 三、端口占用问题 分析问题 解决方法&#xff1a;更换默认端口 nginx是一个高性能的 HTTP 和反向代理 web 服务器&#xff0c;同时也提供了 IMAP/POP3/SMTP 服务。是一款轻量级的 Web 服务器/反向代理服务器及电子邮件&#xff08;I…...

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习01(环境准备)

1 准备工作 由于创建数据中心需要安装很多服务器&#xff0c;这些服务器要耗费很所物理物理计算资源、存储资源、网络资源和软件资源&#xff0c;作为穷学生只有几百块的n手笔记本&#xff0c;不可能买十几台服务器来搭建数据中心&#xff0c;也不愿意跑实验室&#xff0c;想躺…...

解决:使用layui.treeTable.updateNode,更新表格数据后,done里面的事件丢失问题

1. 背景 在给树形表格添加行点击事件&#xff0c;并且只更新当前行数据。 treeTable.updateNode("SpeProjListId", result.LAY_DATA_INDEX, result);更新数据后&#xff0c;点击事件失效。 1. 给字段绑定事件&#xff1a; class"link_a link_style" , {…...

【Linux】环境变量(初步认识环境变量)

文章目录 1. 环境变量1.1 基本概念 2. 认识常见环境变量2.1 PATH2.2 HOME2.3 SHELL2.4 PWD2.5 USER 3. 理解环境变量 1. 环境变量 在main函数的命令行参数中&#xff0c;有argc、argv、env三个参数。 argc&#xff1a;命令行参数的个数argc&#xff1a;存放每个参数的具体数值…...

79. 单词搜索

思路 每次以当前位置为初始位置开始遍历&#xff0c;看是否找到单词 &#xff08;以官方题解做出&#xff09; v:代表等于work[k]且已走过的位置 d:四个方向 回溯&#xff08;遍历&#xff09;&#xff1a; 匹配不上&#xff1a;终止 找到了&#xff1a;终止&#xff08;先…...

[单master节点k8s部署]28.Istio流量管理(四)

金丝雀发布实验 部署两个pod&#xff0c;他们分别是canary-v1和canary-v2。 随后进行service的部署&#xff1a; apiVersion: v1 kind: Service metadata:name: canary-svc34namespace: default spec:selector:apply: canaryports:- port: 80protocol: TCPtargetPort: 80进行…...

Windows 11 安装配置 Git 教程

目录 Git Windows 11 环境安装配置 Git Git Git是一个开源的分布式版本控制系统&#xff0c;由Linus Torvalds创建&#xff0c;用于有效、高速地处理从小到大的项目版本管理。Git是目前世界上最流行的版本控制系统&#xff0c;广泛应用于软件开发中。 以下是Git的一些关键特…...

Go基础学习11-测试工具gomock和monkey的使用

文章目录 基础回顾MockMock是什么安装gomockMock使用1. 创建user.go源文件2. 使用mockgen生成对应的Mock文件3. 使用mockgen命令生成后在对应包mock下可以查看生成的mock文件4. 编写测试代码5. 运行代码并查看输出 GomonkeyGomonkey优势安装使用对函数进行monkey对结构体中方法…...

PHP基础教程

PHP基础教程 1. PHP简介 PHP是一种广泛使用的开源服务器端脚本语言&#xff0c;它特别适用于网页开发&#xff0c;并可嵌入到HTML中使用。 2. PHP环境搭建 Windows: 可以使用XAMPP或WAMP。Mac: 可以使用MAMP。Linux: 可以使用XAMPP或LAMP。 3. 第一个PHP程序 创建一个名为…...

Python或R时偏移算法实现

&#x1f3af;要点 计算单变量或多变量时序距离&#xff0c;使用欧几里得、曼哈顿等函数量化不同时序差异。量化生成时序之间接近度相似性矩阵。使用高尔距离和堪培拉距离等相似度测量。实现最小方差匹配算法&#xff0c;绘制步进模式的图形表示。其他语言包算法实现。 &…...

华为云LTS日志上报至观测云最佳实践

华为云LTS简介 华为云云日志服务&#xff08;Log Tank Service&#xff0c;简称 LTS&#xff09;&#xff0c;用于收集来自主机和云服务的日志数据&#xff0c;通过海量日志数据的分析与处理&#xff0c;可以将云服务和应用程序的可用性和性能最大化&#xff0c;为您提供实时、…...

Python--加载Hugging Face模型文件异常处理

尝试加载 Hugging Face 模型的配置文件时&#xff0c;无法从 https://huggingface.co 获取所需的 config.json 文件。这个错误通常是由于网络连接问题、访问受限或路径配置错误导致的。让我们一步步分析并解决这个问题。 可能原因及解决方案&#xff1a; 网络连接问题&#xf…...

补码加/减运算的具体示例

补码加法运算示例 示例&#xff1a;计算两个十进制数的和&#xff0c;35 18&#xff0c;假设使用8位二进制表示。 1、求原码&#xff1a; 35的原码&#xff1a;00100011 18的原码&#xff1a;00010010 2、求补码&#xff08;对于正数&#xff0c;补码与原码相同&#xff0…...

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程&#xff0c;以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…...

【小白友好】Qwen2.5-VL-7B-Instruct快速上手:无需代码的图文智能问答工具

Qwen2.5-VL-7B-Instruct快速上手&#xff1a;无需代码的图文智能问答工具 1. 工具简介 Qwen2.5-VL-7B-Instruct是一款基于阿里通义千问多模态大模型的视觉交互工具&#xff0c;专为RTX 4090显卡优化。它最大的特点是完全可视化操作&#xff0c;无需编写任何代码就能实现强大的…...

Qwen-Turbo-BF16数据库课程设计:智能问答系统开发

Qwen-Turbo-BF16数据库课程设计&#xff1a;智能问答系统开发 想象一下&#xff0c;你正在上一门数据库课程。老师布置了一个课程设计&#xff1a;开发一个学生信息管理系统。你需要设计表结构&#xff0c;写SQL查询&#xff0c;还要做个简单的界面。你埋头苦干&#xff0c;终…...

2026算力大劫:全球开发者都在问:廉价算力到底去哪了?哪里的token性价比最高?

▶︎点击这里查看最新套餐https://coding.dongyao.ren/ 1. 2026&#xff1a;被“刺客”化的算力账单 进入2026年&#xff0c;AIGC行业并没有迎来预想中的“算力普惠”。相反&#xff0c;随着GPT-5.5等万亿参数模型成为企业刚需&#xff0c;以及北美云巨头在2026年第一季度集体…...

【2024最新】Polars 2.0清洗效率提升417%实测报告:从default配置到生产就绪配置的7阶演进路径

第一章&#xff1a;Polars 2.0大规模数据清洗的性能跃迁本质Polars 2.0 的核心突破并非简单提速&#xff0c;而是通过内存布局重构、零拷贝计算图优化与原生并行执行引擎的深度融合&#xff0c;彻底重构了大规模数据清洗的底层范式。其性能跃迁的本质在于&#xff1a;将传统 Da…...

构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践

构建语音搜索引擎&#xff1a;FireRedASR Pro与Elasticsearch整合实践 你有没有想过&#xff0c;对着手机说句话&#xff0c;就能从海量文档里精准找到你想要的信息&#xff1f;比如&#xff0c;在公司的知识库里&#xff0c;直接问“上季度华东区的销售数据报告在哪&#xff…...

FastAPI测试报告集成:CI/CD状态显示完全指南

FastAPI测试报告集成&#xff1a;CI/CD状态显示完全指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为一款高性能、易学习…...

如何通过ExplorerPatcher实现Windows 11界面个性化定制:从经典布局到高效工作流

如何通过ExplorerPatcher实现Windows 11界面个性化定制&#xff1a;从经典布局到高效工作流 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Wi…...

【优选算法篇】拓扑排序——逻辑先后与任务依赖的终极拆解

文章目录逻辑的枷锁&#xff1a;在依赖网中寻找出路零、 拓扑排序&#xff1a;打破逻辑混乱的“秩序之光”一、 课程表 I & II&#xff1a;经典拓扑排序 (Medium)1.1 题目描述1.2 算法思路&#xff1a;依赖关系的剥离1.3 C 代码实战 (以课程表 II 为例)二、 火星词典&#…...

Z-Image-Turbo LoRA WebUI实战案例:为独立游戏开发者生成角色立绘素材

Z-Image-Turbo LoRA WebUI实战案例&#xff1a;为独立游戏开发者生成角色立绘素材 1. 项目概述与价值 作为一名独立游戏开发者&#xff0c;你是否曾经为角色立绘的设计而头疼&#xff1f;传统的美术外包成本高昂&#xff0c;自己绘制又需要专业技能。现在&#xff0c;通过Z-I…...

JekyllNet .Net 版本的Jekyll , 你博客 文档的静态生成利器 。

若君只欲一篇而尽知 JekyllNet 今可如何用&#xff0c;此文即其总册。 项目入口 仓库地址&#xff1a;https://github.com/JekyllNet/JekyllNet文档网站&#xff1a;https://jekyllnet.helpGitHub Pages 站点入口(仓库 Pages)&#xff1a;https://jekyllnet.github.io/JekyllNe…...