目的地主要有三种类型

  1. Activity
  2. Fragment
  3. 占位符目的地

Activity

从现有的activity进行创建

点击 New Destination ,然后在显示的下拉列表中,点击相应目的地。

新建activity来创建

  1. 完全限定的类名称

    <?xml version="1.0" encoding="utf-8"?>
    <navigation xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/navigation_graph"app:startDestination="@id/simpleFragment"><activityandroid:id="@+id/sampleActivityDestination"android:name="com.example.android.navigation.activity.DestinationActivity"android:label="@string/sampleActivityTitle" />
    </navigation>
    

    类似于

    startActivity(new Intent(context, DestinationActivity.class));
    
  2. Intent-Filter

    1. 本应用的Activity

      清单文件

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.android.navigation.activity"><application><activity android:name=".DestinationActivity"><intent-filter><action android:name="android.intent.action.VIEW" /><dataandroid:host="example.com"android:scheme="https" /><category android:name="android.intent.category.BROWSABLE" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity></application>
      </manifest>
      

      navigation graph

      <?xml version="1.0" encoding="utf-8"?>
      <navigation xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/navigation_graph"app:startDestination="@id/simpleFragment"><activityandroid:id="@+id/localDestinationActivity"android:label="@string/localActivityTitle"app:action="android.intent.action.VIEW"app:data="https://example.com"app:targetPackage="${applicationId}" />
      </navigation>
      
    2. 其他应用的Activity

      <?xml version="1.0" encoding="utf-8"?>`
      <navigation xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/navigation_graph"app:startDestination="@id/simpleFragment"><activityandroid:id="@+id/localDestinationActivity"android:label="@string/localActivityTitle"app:action="android.intent.action.VIEW"app:data="https://example.com"app:targetPackage="com.example.android.another.app" />
      </navigation>
      

Fragment

从现有的fragment进行创建

点击 New Destination ,然后在显示的下拉列表中,点击相应目的地。

新建fragment来创建

  1. 在 Navigation Editor 中,点击 New Destination 图标 ,然后点击 Create new destination
  2. 在随即显示的 New Android Component 对话框中,创建您的 Fragment。

从DialogFragment创建目的地

  1. 如果DialogFragment未创建,创建DialogFragment

  2. 在Navigation Graph中添加dialog标签

    <?xml version="1.0" encoding="utf-8"?>
    <navigation xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/nav_graph">...<dialogandroid:id="@+id/my_dialog_fragment"android:name="androidx.navigation.myapp.MyDialogFragment"><argument android:name="myarg" android:defaultValue="@null" /><actionandroid:id="@+id/myaction"app:destination="@+id/another_destination"/>
    </dialog>...</navigation>
    

占位符目的地

您可以使用占位符来表示尚未实现的目的地。 占位符充当目的地的视觉表示形式。在 Navigation Editor 中,您可以像使用任何其他目的地一样使用占位符。

Android系列之Navigation的目的地(Destination)相关推荐

  1. Android 之 Navigation在目的地之间传递数据、ViewModel

    文章目录 Android 之 Navigation在目的地之间传递数据.ViewModel 一.在目的地之间传递数据 1. 定义目的地参数 2.使用 Safe Args 传递安全的数据 3.在目的地之 ...

  2. Android导航组件Navigation从入门到精通

    文章目录 一.前言 二.导航简介 2.1 导航组件的组成 2.2 导航的原则 2.2.1 固定的起始目的地 2.2.2 导航状态表现为目的地堆栈 2.2.3 在应用的任务中向上按钮和返回按钮行为相同 ...

  3. Android jetpack之Navigation

    1.使用Navigation 1.1创建Navigation Graph 在res文件夹下创建一个Android Resource File,新建一个Navigation Graph文件,将File ...

  4. Android导航组件Navigation实现原理

    对于导航组件的使用方式不是本文的重点,具体使用可以参考官方文档,导航组件框架是通过fragment来实现的,其核心类主要可以分为三个NavGraph.NavHostController.NavHost ...

  5. android 导航栏navigation

    navigation有3个重要的组成部分:导航图 .NavHost  .NavController: 导航图即为xml文件 1.依赖: dependencies {def nav_version = ...

  6. 【Android Jetpack】Navigation——条件导航

    文章目录 1. 前言 2. 实现 2.1 基础配置 2.2 页面逻辑 2.3 代码 2.3.1 UserModel 2.3.2 LoginFragment 2.3.3 DetailFragment 3 ...

  7. android如何在底部显示四个按钮,[Android系列—] 四. 添加操作栏(Action Bar)

    [Android系列-] 4. 添加操作栏(Action Bar) 前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应 ...

  8. 【Xamarin开发 Android 系列 5】 Xamarin 的破解

    [Xamarin开发 Android 系列 5] Xamarin 的破解 原文:[Xamarin开发 Android 系列 5] Xamarin 的破解 有关这个话题,十分敏感,公司开发还是支持下商业 ...

  9. Android系列之Fragment(二)----Fragment的生命周期和返回栈

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

最新文章

  1. 数据结构——基本概念
  2. Spring基于 Annotation 的简单介绍
  3. python服务器搭建nginx_Nginx简单快速搭建文件服务器
  4. 警告:‘xxxx’ 将随后被初始化
  5. python io多路复用_python实现IO多路复用 --- selector
  6. 电脑休眠和睡眠的区别_关机、睡眠、休眠的区别
  7. i12蓝牙耳机使用说明书图片_配置强悍、适用于开车、运动的蓝牙耳机Xisem西圣 Ares使用体验...
  8. 堆排序算法---属于选择排序
  9. 《人月神话》读后感一
  10. C++ 虚函数表浅析
  11. SQL Server 2014新特性:其他
  12. 如何用c语言word文件页数,word文件页码怎么设置
  13. pc电脑微信多开的方法,无需安装任何工具2022
  14. zoho邮箱收费和免费区别_您需要了解有关适用于ios和android的新zoho vault移动应用程序的所有信息...
  15. RabbitMQ 下载安装 (window) 百度网盘
  16. Python 科赫曲线绘制
  17. 富途证券递交招股书:前三季营收5.8亿港元 腾讯持股38%
  18. 全民小视频逆势崛起:短视频的“小趋势”与“信用飞轮”
  19. ifconfig命令用法举例
  20. sa8155 qnx开发笔记之一设备共享

热门文章

  1. cosx绝对值的积分
  2. 共射级放大电路—密勒电容影响下的压摆率
  3. 边沿触发 与电平触发
  4. D. Nastia Plays with a Tree(树形dp)
  5. Result Maps collection already contains value for com.anoxia.mapper.XXXMapper.BaseResultMap
  6. mysql按照音序排列_什么是按音序排列?
  7. html5把六张图片做成立方体,一篇文章教会你利用html5和css3实现3D立方体效果图...
  8. XDOJ 中心对称字符串
  9. 查询服务器外网IP和根据域名查询外网IP
  10. Hadoop HFDS 的 Shell 操作