智能手机需要活动和平板电脑DialogFragment

时间:2011-11-15 10:58:24

标签: android android-layout android-fragments

我正在开发一款简单的游戏。每轮结束后,将显示结果。在智能手机版本中,结果将获得一个自己的屏幕(通常我会使用一个显示片段的活动)。在平板电脑版本中,结果将显示在对话框中。 (通常我会使用DialogFragment)。

现在我不确定如何正确地做到这一点。我读过Fragment不应该加载另一个Fragment,除非Fragment是DialogFragment。但是如果我使用DialogFragment,我就无法使用它来填充整个屏幕。 (如果有可能,我认为这实际上不是应该如何完成的方式)

我可以编写一个布局“result.xml”,一个DialogFragment和一个Activity plus Fragment。但是这样我必须两次实现结果屏幕的功能,据我所知,Fragment应该阻止开发人员使用。

这是最好的做法吗?

1 个答案:

答案 0 :(得分:3)

您不需要FragmentDialogFragment作为DialogFragment可以显示为对话框,视情况而定,请参阅API演示示例(某些内容)沿着'FragmentDialogOrActivity'的路线。

确定以下几种方法,保留DialogFragment然后:

  1. 在平板电脑上调用show,将其显示为对话框。
  2. 在手机上,通过FragmentTransaction简单地调用replace,将“DialogFragment”替换为与游戏片段相同的容器。
  3. 在手机上,创建一个简单的包装器活动,然后您可以通过startActivity(ForResult)调用该包装器,并使用简单的全屏布局调用setContentView包装器,然后将DialogFragment添加到容器中每2。
  4. 至于哪种是最佳实践,我不一定遵守片段不应加载片段的观点,特别是如果它们紧密相关,并且我没有看到上述2对于您的简单应用程序有任何问题。否则只需要3,因为它没什么区别。