2015-10-09 111 views
1

我在片段內使用對話框片段。現在我想從根片段切換到按鈕單擊時的對話框片段。這怎麼可能。 請幫我...如何從片段切換到對話框片段

對話片段代碼......

public class MyDialogFragment extends DialogFragment implements View.OnClickListener { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setStyle(DialogFragment.STYLE_NORMAL, R.style.MY_DIALOG); 
    } 

    @Override 
    public void onStart() { 
     super.onStart(); 
     Dialog d = getDialog(); 

     if (d!=null){ 
      int width = ViewGroup.LayoutParams.MATCH_PARENT; 
      int height = ViewGroup.LayoutParams.MATCH_PARENT; 
      d.getWindow().setLayout(width, height); 
     } 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View root = inflater.inflate(R.layout.my_fragment, container, false); 

     return root; 
    } 

回答

0

寫下面的代碼在你的按鈕點擊:

MyDialogFragment myDialogFragment = new MyDialogFragment(); 

myDialogFragment.show(getFragmentManager(), "myDialogFragment"); 
+0

顯示無法解析的方法顯示 –

+0

確保你通過fragmentmanager的正確的實例錯誤,這是爲我工作 – USKMobility

+0

感謝所有我已經解決了我的問題 –

1

您點擊鏈接,你可以使用myDialogFragment.show(),只是發佈代碼片段:

MyDialogFragment myDialogFragment = new MyDialogFragment(); 

// You cannot access `getFragmentManager()` directly inside fragment so use getActivity() 
myDialogFragment.show(getActivity().getFragmentManager(), "DialogFragment"); 

您應該使用getFragmentManager()getSupportFragmentManager,具體取決於您使用的是哪個Fragment子類

0

如果您從其他片段顯示DialogFragment。你可以嘗試調用getChildFragmentManager()代替getFragmentManager()

使你的代碼看起來像

MyDialogFragment mdf = new MyDialogFragment(); 
mdf.show(getChildFragmentManager(), "tag"); 
+0

錯誤無法解析方法顯示 –

+0

請確保您從支持庫中的'android.support.v4.app.DialogFragment'擴展而不是'android.app.DialogFragment' – Malvin