第一种: //第一种创建Dialog的方式 @Nullable @Override public View onCreateView(LayoutInflater inflat
第一种:
//第一种创建Dialog的方式 @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setCanceledOnTouchOutside(true);//设置点击外部Dialog消失 getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置Dialog外部透明 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉Dialog标题 View view = inflater.inflate(R.layout.dialog_fragment_layout, container, false);//传入Dialog布局文件 return view; } //实现去标题效果除了onCreateView里的写法外,还可以这么写,必须放在onCreate里 // @Override // public void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // setStyle(DialogFragment.STYLE_NO_TITLE, // android.R.style.Theme_Holo_Light_Dialog_MinWidth);//必须放到此处起作用 // } @Override public void onStart() { super.onStart(); //控制Dialog在Window中的宽度和高度 WindowManager.LayoutParams lp = getDialog().getWindow().getAttributes(); lp.y = 100; lp.x = 0; lp.width = (int) (getScreenWidth()*0.8); lp.height = (int) (getScreenHeight() * 0.6); getDialog().getWindow().setAttributes(lp); } //获取屏幕宽度 public int getScreenWidth() { DisplayMetrics dm = getResources().getDisplayMetrics(); return dm.widthPixels; } //获取屏幕高度 public int getScreenHeight() { DisplayMetrics dm = getResources().getDisplayMetrics(); Log.e("screenHeight",dm.heightPixels+""); return dm.heightPixels; }
第二种方式和产生一个AlertDialog相似:
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); View contentView = inflater.inflate(R.layout.dialog_test2_fragment_layout,null); builder.setView(contentView).setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).setNegativeButton("取消",null); return builder.create(); }