我正在开发一款简单的游戏。每轮结束后,将显示结果。在智能手机版本中,结果将获得一个自己的屏幕(通常我会使用一个显示片段的活动)。在平板电脑版本中,结果将显示在对话框中。 (通常我会使用DialogFragment)。
现在我不确定如何正确地做到这一点。我读过Fragment不应该加载另一个Fragment,除非Fragment是DialogFragment。但是如果我使用DialogFragment,我就无法使用它来填充整个屏幕。 (如果有可能,我认为这实际上不是应该如何完成的方式)
我可以编写一个布局“result.xml”,一个DialogFragment和一个Activity plus Fragment。但是这样我必须两次实现结果屏幕的功能,据我所知,Fragment应该阻止开发人员使用。
这是最好的做法吗?
答案 0 :(得分:3)
您不需要Fragment
和DialogFragment
作为DialogFragment
可以显示为对话框,视情况而定,请参阅API演示示例(某些内容)沿着'FragmentDialogOrActivity'的路线。
确定以下几种方法,保留DialogFragment然后:
show
,将其显示为对话框。replace
,将“DialogFragment”替换为与游戏片段相同的容器。startActivity(ForResult)
调用该包装器,并使用简单的全屏布局调用setContentView
包装器,然后将DialogFragment
添加到容器中每2。至于哪种是最佳实践,我不一定遵守片段不应加载片段的观点,特别是如果它们紧密相关,并且我没有看到上述2对于您的简单应用程序有任何问题。否则只需要3,因为它没什么区别。