0

で複数のカスタム ダイアログを管理していますLinkedList

表示された最初のダイアログは常にFLAG_DIM_BEHIND設定されており、表示されている他のすべてのダイアログはFLAG_DIM_BEHINDフラグからクリアされています。

私の問題は、ダイアログが firstDialog のFLAG_DIM_BEHIND影響を受けないことです。firstDialog が最初に作成されるためだと思います。

次の方法を試しました。

  • =>を使用firstDialog.getWindow().getDecorView().bringToFront()しても機能しませんでした

  • すべてのダイアログをキャンセルし、firstDialogが最後に表示されたときに再表示します。しかし、ウィンドウをキャンセルすると、LinkedList から削除されました。

  • すべてのダイアログを閉じて、firstDialog最後に表示されたときに再表示します。しかし、ダイアログは再表示されません。

    ....
    
    LinkedList<CustomDialog> dialogList = new LinkedList<CustomDialog>();
    CustomDialog firstDialog = new CustomDialog();
    firstDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    dialogList.add(firstDialog);
    CustomDialog temp;
    for(int i = 0; i < 3; i++)
    {
            temp = new CustomDialog();
            temp.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            dialogList.add(temp);
    }
    
    for(CustomDialog itr : dialogList)
    {
            itr.show();
    }
    
    ....
    



事前にどうもありがとうございました。

4

1 に答える 1

0

アプリで複数のダイアログを相互に使用していますが、それらを別々のクラスで使用しています。

public class PopFilters extends Dialog implements android.view.View.OnClickListener{}

これでそれらを呼び出します

PopFilters(NewMain.nmain).show();

私が抱えている問題は、電話が縦向きになっているときです

FLAG_DIM_BEHIND

ダイアログを開いたときにちらつきますが、横向きの場合は問題ありません。それは私を夢中にさせますが、それ以外は問題ありません。

于 2013-06-09T13:27:46.257 に答える