2011-11-15 2 views
0

私は単純なゲームを開発しています。各ラウンドの後、結果が表示されます。スマートフォン版では、結果に独自の画面が表示されます(通常、断片を表示するアクティビティを使用します)。タブレットのバージョンでは、結果がダイアログに表示されます。 (通常はDialogFragmentを使用します)。スマートフォンに必要なアクティビティとタブレットDialogFragment

今、正しく行う方法がわかりません。フラグメントがDialogFragmentでない限り、フラグメントは別のフラグメントをロードすべきではありません。しかし、私がDialogFragmentを使うと、それを使って画面全体を埋めることはできません。 (可能であれば、実際にどうすればいいかと思う)

ダイアログ "result.xml"、DialogFragment、Activity plus Fragmentを書くことができます。しかし、この方法では、結果画面の機能を2回実装する必要があります。これは、フラグメントが開発者を妨げるべきであることがわかっている限りです。

これにはベストプラクティスがありますか?

答えて

3

あなたは(「FragmentDialogOrActivity」の線に沿って何かをAPIのデモのサンプルを参照してください。

、場合に応じて DialogFragmentダイアログとして表示できるか否かと FragmentDialogFragmentを持っている必要はありません

、これを行うにあなたのDialogFragmentを維持し、その後にするOKので、いくつかの方法:ダイアログとしてそれを表示するようにタブレットコールshow

  1. 電話で、REPLにFragmentTransaction経由simpleyコールreplaceあなたの 'DialogFragment'をゲームのフラグメントと同じコンテナに入れてください。
  2. 電話では、startActivity(ForResult)を経由して呼び出すことができ、単純なフルスクリーンレイアウトでそのラッパーコールsetContentViewを呼び出してから、DialogFragmentを2個ごとにコンテナに追加することができます。

ベストプラクティスは、フラグメントがフラグメントをロードしないようにする必要はありません。特に、それらが密接にリンクされていて、上記の2つの問題が表示されないシンプルなアプリ。さもなければ、それはほとんど違いがないので、3と一緒に行ってください。

関連する問題