文章大纲
一、什么是Material Dialogs
二、Material Dialogs实战
三、项目源码下载
一、什么是Material Dialogs
??Material Dialogs是一个漂亮、流畅、可定制的对话框,核心模块包含创建基本、列表、单/多选项、进度、输入等对话框。
二、Material Dialogs实战
使用注意点:
(1)使用MaterialDialog的Activity需要继承AppCompat
(2)默认的MaterialDialog在点击空白位置时候会自动关闭弹出框,取消dialog以外的区域的点击事件代码如下
//取消dialog以外的区域的点击事件(默认为true)这里我们设置成false就ok啦 .canceledOnTouchOutside(false)
1. 添加依赖
//添加material-dialogs依赖 //核心模块的依赖 implementation 'com.afollestad.material-dialogs:core:0.9.1.0' //公共模块的依赖 //公共模块包含不是每个人都需要的扩展库。 这包括 ColorChooserDialog、FolderChooserDialog、Material Preference 类和 MaterialSimpleListAdapter / MaterialSimpleListItem implementation 'com.afollestad.material-dialogs:commons:0.9.1.0'
2. 创建基本弹框
new MaterialDialog.Builder(MainActivity.this) .title("标题") .content("内容") .positiveText("确认") .negativeText("取消") .show();
运行结果如下:
温馨提示:取消弹框采用dialog.dismiss();
3. 创建带图标弹框(包含两个按钮)
new MaterialDialog.Builder(MainActivity.this) .title("标题") .content("内容;测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度") .positiveText("确认") .negativeText("取消") .icon(getResources().getDrawable(R.drawable.ic_launcher)) .show();
运行结果如下:
温馨提示:可以用maxIconSize(int size)限制图标最大size
4. 创建带三个按钮弹框
new MaterialDialog.Builder(MainActivity.this) .title("标题") .content("内容") .positiveText("确认") .negativeText("取消") .neutralText("更多") .show();
运行结果如下:
5. 创建带点击事件的弹出框
//如果你想监听三种动作按钮,只用一个onAny就行了,which会告诉你点击了什么按钮,根据需要去判断,which.toString()的名字分别是Positive,Negative等 //new MaterialDialog.Builder(this) // .title("标题") // .content("内容") // .positiveText("确认") // .negativeText("取消") // .neutralText("更多") // .onAny(new MaterialDialog.SingleButtonCallback() { // @Override // public void onClick(MaterialDialog dialog, DialogAction which) { // Toast.makeText(MainActivity.this, which.toString(), Toast.LENGTH_SHORT).show(); // } // }) // .show(); click_button = (Button)findViewById(R.id.click_button); click_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new MaterialDialog.Builder(MainActivity.this) .title("标题") .content("内容") .positiveText("确认") .negativeText("取消") .neutralText("更多") .onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(MaterialDialog dialog, DialogAction which) { Toast.makeText(MainActivity.this, "点击了确认按钮", Toast.LENGTH_SHORT).show(); } }) .onNeutral(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(MaterialDialog dialog, DialogAction which) { Toast.makeText(MainActivity.this, "点击了更多按钮", Toast.LENGTH_SHORT).show(); } }) .onNegative(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(MaterialDialog dialog, DialogAction which) { Toast.makeText(MainActivity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show(); } }) .show(); } });
运行结果如下:
6. 创建是否不再询问弹出框
new MaterialDialog.Builder(Ma