我在片段中使用对话框片段。现在我想在按钮点击时从我的根片段切换到对话框片段。这怎么可能。 请帮帮我......
对话框片段代码是......
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 :(得分: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");