相关文章推荐
###前言 在我们项目的进行中不可避免的会用到弹框的使用,我们也经常的使用dialog相关知识来创建一个弹出框,但今天我要讲解的是用DialogFragment的方式来快速创建一个简约风格的弹出框,它相较于dialog来创建弹出框的优势在: dialog在关闭的时候,容易发生内存泄漏,而dialogFragment是和activity的生命周期绑定的,dialogFragment自身对内存做了些处理,它不仅具备dialog功能,还避免了内存的泄露,特别是在手机进行横竖屏切换的时候 下面我就来讲讲DialogFragment创建dialog相关的知识。 ### 程序实现 #####一.dialogFragment创建dialog的方式 dialogFragment创建dialog的方式有两种: 1. 通过重写 onCreateDialog(Bundle savedInstanceState) 方法创建默认dialogFragment 2. 通过重写 onCreateView 方法来自定义dialogFragment 由于今天讲解的是通过快速的方式创建dialog,就讲解第一种方式 具体思路是写一个类去继承AppCompaDialogFragment,然后重写onCreateDialog方法来实现dialog的创建 然后我自己新建了一个DefaultDialogFragment对默认DialogFragment进行了封装,下面就来讲讲DefaultDialogFragment的具体使用。 #####一.DefaultDialogFragment初始化 private DefaultDialogFragment mDefaultDialogFragment; mDefaultDialogFragment=new DefaultDialogFragment(); #####二.DefaultDialogFragment设置标题 setTitle(String title) #####三.DefaultDialogFragment设置标题 setMessage(String message) #####四.DefaultDialogFragment设置是否可按返回键消失 默认为true,即点击返回键会消失 setCancel(boolean canDismiss) #####五.设置是否可点击屏幕dialog外部区域消失 默认为true,即点击屏幕dialog外部区域会消失 setCancelOnTouchOutside(boolean canDismiss) #####六.设置dialog背景色 setBackGround(int rid) #####七.监听确认点击事件 setPositiveListener(String positiveText, DialogInterface.OnClickListener onClickListener) #####八.监听取消点击事件 setNegativeListener(String negativeText, DialogInterface.OnClickListener onClickListener) #####九.显示dialogFragemnt showDialog(FragmentManager fragmentManager) #####十.dialogFragemnt显示类型 DefaultDialogFragment支持链式调用,如果你想只显示提示语而没有点击事件(即没有确认和取消按钮),你可以这样调用: mDefaultDialogFragment=new DefaultDialogFragment(); mDefaultDialogFragment.setTitle("提示")//设置标题 .setMessage("我是提示框")//设置提示语 .setCancel(true)//设置是否可按返回键消失 .setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失 .setBackGround(R.color.color_f66f6f)//设置dialog背景色 .showDialog(getSupportFragmentManager());//显示dialog 只包含一个确认按钮,你可以这样调用: mDefaultDialogFragment=new DefaultDialogFragment(); mDefaultDialogFragment.setTitle("提示")//设置标题 .setMessage("我是带确认按钮提示框")//设置提示语 .setCancel(true)//设置是否可按返回键消失 .setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失 .setBackGround(R.color.color_f66f6f)//设置dialog背景色 .setPositiveListener("确定",new DialogInterface.OnClickListener(){//设置确定按钮事件 @Override public void onClick(DialogInterface dialog, int which) { ToastUtil.showShortToast(MainActivity.this,"确定"); .showDialog(getSupportFragmentManager());//显示dialog 只包含一个取消按钮,你可以这样调用: mDefaultDialogFragment=new DefaultDialogFragment(); mDefaultDialogFragment.setTitle("提示")//设置标题 .setMessage("我是带取消按钮提示框")//设置提示语 .setCancel(true)//设置是否可按返回键消失 .setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失 .setBackGround(R.color.color_f66f6f)//设置dialog背景色 .setNegativeListener("取消", new DialogInterface.OnClickListener() {//设置取消按钮事件 @Override public void onClick(DialogInterface dialog, int which) { ToastUtil.showShortToast(MainActivity.this,"取消"); .showDialog(getSupportFragmentManager());//显示dialog dialog中既有确认按钮也有取消按钮,你可以这样调用: mDefaultDialogFragment=new DefaultDialogFragment(); mDefaultDialogFragment.setTitle("提示")//设置标题 .setMessage("我是两个按钮均有的提示框")//设置提示语 .setCancel(true)//设置是否可按返回键消失 .setCancelOnTouchOutside(true)//设置是否可点击屏幕dialog外部区域消失 .setBackGround(R.color.color_f66f6f)//设置dialog背景色 .setPositiveListener("确定",new DialogInterface.OnClickListener(){//设置确定按钮事件 @Override public void onClick(DialogInterface dialog, int which) { ToastUtil.showShortToast(MainActivity.this,"确定"); .setNegativeListener("取消", new DialogInterface.OnClickListener() {//设置取消按钮事件 @Override public void onClick(DialogInterface dialog, int which) { ToastUtil.showShortToast(MainActivity.this,"取消"); .showDialog(getSupportFragmentManager());//显示dialog ##### dialogFragemnt运行效果图 ![](/contentImages/image/20180209/BESobXHmTdWWXVpNv6A.gif) ##### dialogFragemnt项目结构图 ![](/contentImages/image/20180209/Pwxidz8IxCMxarMxnuM.png)

服务描述:
微信加我验证时说明是:来自demo大师求助 服务范围:辅助将你有疑问的一个例子运行起来,并对该例子做技术方便的解答,服务时间为2天内,若需要其他特别需求或对从我这里下载的其他例子做解答价格另议

服务价格: ¥50

 
推荐文章