0

我正在管理多个自定义对话框LinkedList

显示的第一个对话框始终已FLAG_DIM_BEHIND设置,所有其他显示的对话框FLAG_DIM_BEHIND已从其标志中清除。

我的问题是对话框不受FLAG_DIM_BEHINDfirstDialog 的影响,我认为这是因为 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 回答