版权声明:转载请声明: https://blog.csdn.net/MingJieZuo/article/details/83151013
一、概述
本节主要简单介绍下DialogFragment的使用,DialogFragment是Fragment的子类,跟其他Fragment一样,DialogFragment实例也是由托管Activity的FragmentManager管理着的,DialogFragment可通过调用show(…)方法被FragmentManager放置到屏幕上,下面我们就来具体的看下
二、DialogFragment创建
其实DialogFragment的用法非常简单,下面我们来简单看个例子,这是我们定义的MyDialogFragment类
public class MyDialogFragment extends DialogFragment{
//在这里我们就创建一个简单的AlterDialog,重点不是AlterDialog
@Override public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setTitle("这是我们定义的AlterDialog")
.setPositiveButton(android.R.string.ok, null)
.create();
}
}
随后在我们的MyActivity4中使用即可
public class MyActivity4 extends AppCompatActivity{
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout4);
addClickListener();
}
private void addClickListener() {
findViewById(R.id.tv_show_dialog).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//弹出对话框
addDialogFragment();
}
});
}
private void addDialogFragment() {
//虽然DialogFragment也是一个Fragment,但是在使用上还是有些差别
FragmentManager fm = getFragmentManager();
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.show(fm, "俺乃String tag");
}
}
为什么有AliterDialog了,我们还要多此一举的使用DialogFragment呢,主要原因有两方面,一方面是因为既然DialogFragment是Fragment,所以其也就具备了Fragment的优点,有自己的生命周期管理、易复用、能够通过FragmentManager使用更多配置选项显示对话框;另一方面,当设备发生旋转时,DialogFragment也不会像AlterDialog那样在旋转后消失。
三、总结
本节主要简单的介绍了DialogFragment的使用,如果想要查看更多Fragment的基础知识,去我的博客目录里查看吧,因为关于每块知识点的介绍,博客单节写的比较零散,不容易查找。