跳转:
mPhotoEntity = mPhotoAdapter.getItem(position);
PhotoDialogFragment dialogFragment = new PhotoDialogFragment();
Bundle bundle = new Bundle();
bundle.putParcelable("PhotoEntity", mPhotoEntity);
dialogFragment.setArguments(bundle);
dialogFragment.show(getChildFragmentManager(),"PhotoDialogFragment");
传值:传对象,对象需要——implements Parcelable
注意:不能是 Fragment a; 应该是DialogFragment a;不然会报错
设置:
设置背景颜色:
//设置背景为透明色
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
关闭当前对话框:
//关闭当前对话框
dismissAllowingStateLoss();
显示持续时间:
Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
//时间到了后,怎么样的操作
dismissAllowingStateLoss();
}
},3000);
不让关闭当前对话框:
setCancelable(false);
xml设置提示框的大小
大小设置在第二层,在设置大小的上面要包一层
代码里设置提示框的大小,背景,显示的位置
- 在onStart方法中设置窗口的大小和位置
@Override
public void onStart() {
super.onStart();
Window win = getDialog().getWindow();
// 一定要设置Background,如果不设置,window属性设置无效
win.setBackgroundDrawable( new ColorDrawable(Color.TRANSPARENT));
//背景可以直接在xml里设置
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics( dm );
WindowManager.LayoutParams params = win.getAttributes();
params.gravity = Gravity.BOTTOM;
// 使用ViewGroup.LayoutParams,以便Dialog 宽度充满整个屏幕
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
//可直接使用具体大小
params.width = AutoSizeUtils.dp2px(getContext(), 1240);
params.height = AutoSizeUtils.dp2px(getContext(), 1336);
win.setAttributes(params);
}