如果按照一般fragment的写法:

在nav_config中
<fragment
android:id="@+id/fragment_crime_detail"
android:name="com.example.criminalintent.CrimeFragment">
<action
android:id="@+id/to_fragment_dialog"
app:destination="@id/fragment_dialog"/> </fragment> <fragment
android:id="@+id/fragment_dialog"
android:name="com.example.criminalintent.DatePickerFragment"> </fragment>

DialogFragment实现如下:

class DatePickerFragment:DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
super.onCreateDialog(savedInstanceState)
val calendar = Calendar.getInstance()
val initYear = calendar.get(Calendar.YEAR)
val initMonth = calendar.get(Calendar.MONTH)
val initDay = calendar.get(Calendar.DAY_OF_MONTH) return DatePickerDialog(
requireContext(),
null,
initYear,
initMonth,
initDay
)
}
}

那么我们

findNavController().navigate(R.id.to_fragment_dialog)

action过去,DatePickeerFragment展示的只会是一片空白。

原因是,我们在导航至DialogFragment的时候,xml的标签要定制为:<dialog

这样子在调用Navcontroller.navigate的时候会根据标签的不同选择不同的Navigator进行处理,具体可以看没个Navigator实现类,都有一个@Navigator.Name的注解,在调用navigate方法的时候会去根据这个注解查询具体调用哪一个Navigator进行处理

Navigation DialogFragment展示dialog的更多相关文章

  1. Android开发:使用DialogFragment实现dialog自定义布局

    使用DialogFragment实现dialog的自定义布局最大的好处是可以更好控制dialog的生命周期. TestFragment的代码: public class TestFragment ex ...

  2. android DialogFragment 实现Dialog展示扫二维码图片展示

    近期开发项目,做个按钮点击弹出展示微信二维码关注微信公众号的展示框,于是想到DialogFragment,期间对Dialog的title的底框字体颜色做出相关设置,记录如下: 下面是 DialogFr ...

  3. Android Dialogs(2)最好用DialogFragment创建Dialog

    Creating a Dialog Fragment You can accomplish a wide variety of dialog designs—including custom layo ...

  4. DialogFragment创建默认dialog

    代码地址如下:http://www.demodashi.com/demo/12228.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 前言 在我们项目的进行中不可避免 ...

  5. Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  6. [Android Pro] Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  7. AlertDialog与DialogFragment

    1.AlertDialog 作用:简单的弹出框实现 创建方法: AlertDialog alert = new AlertDialog.Builder(); 使用: new AlertDialog.B ...

  8. Dialog与FragmentDialog源代码分析

    <世界守则> -UI一片 注形容自己用语言 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/detail ...

  9. DialogFragment的应用

    一.DialogFragment简单介绍: 1.基本概念 DialogFrament 指一个与fragment建立了关联的Dialog, 随fragment生, 随fragment死, 即Dialog ...

随机推荐

  1. .netcore 写快递100的快递物流信息查询接口

    快递100的物流信息查询接口,官方提供了一些demo;还好官方提供的代码是.netcore版本写的,不过写的有点low;根据官方提供的代码,我按照.netcore 的风格重构了代码:核心代码如下: / ...

  2. Ionic5路由跳转传值复用

    1. 路由技术 ( 详细记录 ) 是笔记不是博文,觉得写的不够详细的可以使用Ctrl + W组合键 路由跳转页面 1. HTML 中使用 routerLink 属性路由进行跳转,传值时使用 query ...

  3. G - River Hopscotch(二分)

    Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully ...

  4. .Net之配置文件

    1. 说明 默认情况下读取配置Configuration的默认优先级:ConfigureAppConfiguration(自定义读取)>CommandLine(命令行参数)>Environ ...

  5. Mysql 事务特性和隔离级别

    事务的特性 原子性(Atomicity) 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到 ...

  6. hdu1261 JAVA

    题意: 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以组成多少个不同的 ...

  7. hdu3338 最大流

    题意:             给你一个N*M的网格,上面有的有一些数字,要求填充数字,满足的规则是这样: 答案不唯一,只要满足和的关系就可以,还有就是只能用1--9之间的数字填充,而且每一行或一列可 ...

  8. Photoshop 第二课 工具-钢笔的使用

    钢笔的使用 钢笔→ 是一个非常实用(主要用于)但是非常难操作(会者不难哦~)的工具. 钢笔属性中有三种状态:1.路径:2.形状:3.像素.其中路径和形状是我们最常用的状态.路径是一条用来圈定需要操作的 ...

  9. Windowsw核心编程 第13章 Windows内存结构

    第1 3章 Wi n d o w s的内存结构 13.1 进程的虚拟地址空间 每个进程都被赋予它自己的虚拟地址空间.对于 3 2位进程来说,这个地址空间是4 G B,因为3 2位指针可以拥有从0 x  ...

  10. Python 爬虫之urllib库的使用

    urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数: 在Python3的urlli ...