基本的に、Dialogs はバックグラウンドでアクティビティを非アクティブ化します。したがって、DialogFragment
複雑さが増しても同じことが起こります。DialogFragment
では、さまざまなサブクラスが利用可能であるにもかかわらず、なぜ選択する必要があるのでしょうかDialog
。
4 に答える
Fragments
はアクティビティで使用されますが、フラグメントをダイアログ (ウィンドウ) として表示FragmentTransaction
し、フラグメントのライフサイクルをフォローアップするには、 を使用する必要がありますDialogFragment
。ただし、simpleDialog
も使用できますが、フラグメントのライフサイクルとは関係ありません。
Googleドキュメントによると:
必要に応じて、DialogFragment を通常のフラグメントとして使用することもできます。これは、場合によってはダイアログとして表示し、他のフラグメントをより大きな UI に埋め込む必要がある場合に便利です。
FragmentDialog は、次のようなフラグメントです。
フラグメントとして使用されます。例:
FragmentTransaction trans = getSupportFragmentManager().beginTransaction(); trans.add(R.id.navigation_fragment, mFriendFragment); trans.commit();
ダイアログとして使用されます。例:
FragmentManager fm = getFragmentManager(); UnsubscribeTabletFragment fragment = new UnsubscribeTabletFragment(); fragment.show(fm, "dialog");
したがって、フラグメントがあり、フラグメントがフラグメントとして機能する場合や、ダイアログとして機能する場合は、これを使用する必要があります。
DialogFragmentは、アプリのダイアログの一部を再利用することを許可します。フラグメントがレイアウトに対してそれを行うのと同じように。
ここにDialogFragmentに関する優れた記事があります:http: //android-developers.blogspot.fr/2012/05/using-dialogfragments.html
すでにフラグメントを使用してAndroidアプリに動的レイアウトがある場合、アクションボタンのクリックまたは他のクリックからダイアログで/で使用する必要があるため、今回はdialogFragmentが通常のダイアログよりも便利です。