如何从片段切换到对话片段

时间:2015-10-09 05:47:26

标签: android

我在片段中使用对话框片段。现在我想在按钮点击时从我的根片段切换到对话框片段。这怎么可能。 请帮帮我......

对话框片段代码是......

  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;
    }

3 个答案:

答案 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子类

答案 1 :(得分:0)

在按钮单击中写下以下代码:

MyDialogFragment myDialogFragment = new MyDialogFragment();

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

答案 2 :(得分:0)

如果您正在显示另一个片段中的DialogFragment。您可以尝试拨打getChildFragmentManager()而不是getFragmentManager()

所以你的代码看起来像

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