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"); 

請試試這個可能有用