如何在Android中管理全屏对话框?

nat*_*rio 5 android android-fragments android-dialog android-dialogfragment

我正在考虑对话框的外观.引用设计指南:

由于移动设备上的空间有限,可能在全屏对话框中更适当地呈现可能在其他形状因素(平板电脑,桌面等)中显示为对话的内容.

这对我来说似乎很合理.根据屏幕尺寸将对话框显示为嵌入式/全屏的内容也在这里.基本上,你可以:

  • 对于小屏幕,覆盖public Dialog onCreateDialog()你的DialogFragment电话.show();
  • 对于宽屏幕,也可以覆盖public View onCreateView()并提交片段事务.

我认为这是一个简单的任务,但我有一些关于全屏对话框以及如何管理它们的概念问题.我甚至不确定全屏对话框设计指南是否真的如此DialogFragment.

例如,在我链接的图片中,全屏片段对话框有一个工具栏.

在全屏对话框中,确认和拒绝操作位于屏幕顶部.

全屏对话框的工具栏样式非常奇特:X要解除,标题,确认右侧的操作.这些项目是浮动项目的全屏版本,AlertDialog这里没什么新东西.

我想知道的是 - 我必须两次处理这些操作,一次是针对浮动还是一次针对全屏版本?我是否必须设置两个版本的对话框?

而且,工具栏来自哪里?我们应该加载对话框片段android.R.id.contentToolbar在片段内添加吗?我们应该将它加载到实际的活动布局中,并在运行时重新设计工具栏吗?我们是否应该将对话框片段视为a Dialog,并show()使用特定的窗口属性(但是,删除底部的按钮,添加工具栏......)?

我在想这个过程是由DialogFragment类自动管理的,但看起来并不是这样.