2011-11-15 123 views
0

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

现在我不知道如何正确地做到这一点。我读过一个片段,除非片段是一个DialogFragment,否则不应该加载其他片段。但是如果我使用DialogFragment,我不能用它来填满整个屏幕。 (如果有可能,我认为这实际上不是应该如何实现的方式)

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

对此有最佳做法吗?

回答

3

你并不需要有一个FragmentDialogFragmentDialogFragment可以显示为一个对话框或者不作为的情况而定,请参阅API演示样品(沿东西“FragmentDialogOrActivity”的线。

确定这样几个方法可以做到这一点,让您的DialogFragment然后:

  1. 在上平板电脑的呼叫show将其显示为一个对话框
  2. 在手机,电话simpley通过replace到FragmentTransaction REPL将你的'DialogFragment'加入你游戏片段的同一个容器中。
  3. 在手机上,创建一个简单的包装活动,然后您可以通过startActivity(ForResult)调用并使用简单的全屏布局将该包装调用setContentView,然后按照2将您的DialogFragment添加到容器中。

至于哪个是最好的做法我并不坚持认为,一个片段不应将其加载片段,尤其是当它们是紧密相连的,我没有看到上述2的任何问题为您简单的应用。否则就跟3一起去吧,因为它没什么区别。

相关问题