12

我有触发时的功能后没有显示,成功地显示与下面的代码DialogFragmentDialogFragment添加警告窗口

DialogFragment

DialogFragment dialog; 
View dialogView; 
Context activityContext; 

... 

dialog = new DialogFragment(){ 
    @Override public Dialog onCreateDialog(Bundle savedInstanceState) { 
     dialogView = getActivity().getLayoutInflater().inflate(R.layout.customView, null); 
     ... 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setView(dialogView); 
     return builder.create(); 
    } 
}; 

dialog.show(activityContext.getSupportFragmentManager() , "MyDialog"); 

的问题是,我添加了一个系统警报后,窗口中的DialogFragment不再显示,但是如果我传递给另一个应用程序,当我的应用程序最小化时,我可以看到DialogFragment,同时减小它的大小

系统警报窗口

WindowManager mWindowManager; 
WindowManager.LayoutParams params; 

... 

mWindowManager = (WindowManager)activityContext.getSystemService(Context.WINDOW_SERVICE); 
params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.TYPE_PHONE, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
    PixelFormat.TRANSLUCENT 
} 
params.gravity = Gravity.CENTER_VERTICAL | Gravity.RIGHT; 
addView(((LayoutInflater)activityContext.getSystemService("layout_inflater")).inflate(R.layout.floatingBotton, null)); 

所以......为什么我不能看到我的对话框顶部(据我了解,在对话框中显示) 为什么当系统警告窗口时才会发生显示

我和其他标志的系统警告窗口试过,但我有,我试过的那些同样的问题

+0

你将它添加到dialogfragment的窗口? – Elltz 2015-06-09 03:45:27

+0

是'dialog.show'方法是你自己的吗?显示对话方法在API级别13中已弃用,您需要使用片段管理器来显示对话框。显示Dialog Fragment类以便更好地理解.. – 2015-06-09 06:32:26

+0

AFAIK对话框z-index按照它们显示的顺序确定,例如,在窗口管理器充气布局之后显示对话框片段,然后您的DialogFragment将显示在其他布局之上。给予最后显示在屏幕上的优先顺序。 – 2015-06-09 06:35:35

回答

0
FragmentManager fmg1=this.getChildFragmentManager(); 
//or 
FragmentManager fmg1=this.getFragmentManager(); 

dialog.show(fmg1 , "MyDialog"); 

请试试这个可能有用