Android 我如何使一个对话先于其他对话,使他的dim位于tham之上

Android 我如何使一个对话先于其他对话,使他的dim位于tham之上,android,dialog,Android,Dialog,我在链接列表中管理多个自定义对话框 显示的第一个对话框始终设置了FLAG\u DIM\u BEHIND,而显示的所有其他对话框都已从其标志中清除了FLAG\u DIM\u BEHIND 我的问题是对话框不受firstDialog的标志影响,我认为这是因为firstDialog是先创建的。 我尝试了以下方法: 使用firstDialog.getWindow().getDecorView().bringToFront()=>无效 取消所有对话框,然后在最后显示firstDialog时重新显示它们。

我在
链接列表中管理多个自定义对话框

显示的第一个对话框始终设置了
FLAG\u DIM\u BEHIND
,而显示的所有其他对话框都已从其标志中清除了
FLAG\u DIM\u BEHIND

我的问题是对话框不受firstDialog的
标志影响,我认为这是因为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();
    }
    
    ....
    
    。。。。
    LinkedList dialogList=新建LinkedList();
    CustomDialog firstDialog=新建CustomDialog();
    firstDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG\u DIM\u BEHIND);
    添加(第一个对话框);
    自定义对话框温度;
    对于(int i=0;i<3;i++)
    {
    temp=新建自定义对话框();
    temp.getWindow().clearFlags(WindowManager.LayoutParams.FLAG\u DIM\u落后);
    dialogList.add(临时);
    }
    用于(CustomDialog itr:dialogList)
    {
    itr.show();
    }
    ....
    



非常感谢。

我在我的应用程序中使用多个对话框,但在不同的类中使用它们

public class PopFilters extends Dialog implements android.view.View.OnClickListener{}
用这个称呼他们

PopFilters(NewMain.nmain).show();
我遇到的问题是,手机的方向是纵向的

FLAG_DIM_BEHIND

它会导致对话框在打开时闪烁,在横向时,没有问题。它让我发疯,但除此之外没有问题。

发布您的相关代码片段。我以为您只能在同一时间从同一活动打开一个对话框?打开第二个对话框将关闭第一个对话框(清除后面的标志)。您可以显示任意多的对话框,通常情况下,第二个对话框会在第一个对话框上方打开。@Dorshake理论上是的,但实际上,我认为背景上的对话框是关闭的。您是否在第二个对话框比第一个小的情况下尝试了此操作?你还看到背景上的第一个吗?@AleksG是的,我知道它与我的“CustomDialog”一起工作,我没有为它的发生做任何特殊的程序,所以我猜它将与一个简单的“Dialog”一起工作。