转载借鉴:https://www.imooc.com/article/21577
1、 Android官方推荐使用DialogFragment创建对话框,在android3.0时被引用。是一种特殊的Fragment,用于在Activity的内容上展示一个对话框。
2、DialogFragment有着Dialog没有的非常好的特性
(1)它本身是Fragment的子类,有着和Fragment基本一样的生命周期,使用DialogFragment来管理对话框,当旋转屏幕和按下后退键的时候可以更好的管理其生命周期
(2)在手机配置变化导致Activity需要重新创建时,例如旋转屏幕,基于DialogFragment的对话框将会由FragmentManager自动重建,然而基于Dialog实现的对话框却没有这样的能力
2、DialogFragment的使用
使用DialogFragment至少需要实现onCreateVIew()或者onCreateDialog()方法,onCreateView()用自定义的xml布局文件来展示Dialog,而onCreateDialog()用AlertDialog或者Dialog创建出我们想要的Dialog。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_edit_name, container);
return view;
}
---------------------
作者:鸿洋_
来源:CSDN
原文:https://blog.csdn.net/lmj623565791/article/details/37815413
版权声明:本文为博主原创文章,转载请附上博文链接!
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.fragment_login_dialog, null);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(view)
// Add action buttons
.setPositiveButton("Sign in",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
}
}).setNegativeButton("Cancel", null);
return builder.create();
}
---------------------
作者:鸿洋_
来源:CSDN
原文:https://blog.csdn.net/lmj623565791/article/details/37815413
版权声明:本文为博主原创文章,转载请附上博文链接!
此处注意,
//给对话框内部背景设置透明
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);