デフォルトの動作では、現在表示されているダイアログの上に新しいダイアログが表示されます。 .show()メソッドを使用すると:FragmentDialogsを下に表示
dialog0.show(fragmentManager, null)
dialog1.show(fragmentManager, null)
私はdialog1を見ることになります。
これを変更し、すでに表示されているダイアログの下に新しいダイアログを表示する方法はありますか?
デフォルトの動作では、現在表示されているダイアログの上に新しいダイアログが表示されます。 .show()メソッドを使用すると:FragmentDialogsを下に表示
dialog0.show(fragmentManager, null)
dialog1.show(fragmentManager, null)
私はdialog1を見ることになります。
これを変更し、すでに表示されているダイアログの下に新しいダイアログを表示する方法はありますか?
これを変更して、すでに表示されているダイアログの下に新しいダイアログを表示する方法はありますか?
いいえ、システムではありません。ダイアログ。このような機能が必要な場合(まだあなたのUXで何か問題があると思われる場合)、完全なカスタムソリューション、つまり別のアクティビティをダイアログとしてスタイル設定し、必要に応じてレイアウトを行う必要があります。
カスケードダイアログは正しい方法ではありません。代わりに、次のようなことを試みてください:
final Queue<AlertDialog> dialogQueue = new LinkedList<>();
[...]
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(R.string.dialog_title);
alert.setMessage(R.string.dialog_msg);
alert.setPositiveButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
AlertDialog next = dialogQueue.poll();
if(next != null){
next.show();
}
}
});
alert.show();