性爱265,禁室培欲终结篇,返券
一、什么是material dialogs
二、material dialogs实战
三、项目源码下载
material dialogs是一个漂亮、流畅、可定制的对话框,核心模块包含创建基本、列表、单/多选项、进度、输入等对话框。
使用注意点:
(1)使用materialdialog的activity需要继承appcompat
(2)默认的materialdialog在点击空白位置时候会自动关闭弹出框,取消dialog以外的区域的点击事件代码如下
//取消dialog以外的区域的点击事件(默认为true)这里我们设置成false就ok啦 .canceledontouchoutside(false)
//添加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'
new materialdialog.builder(mainactivity.this) .title("标题") .content("内容") .positivetext("确认") .negativetext("取消") .show();
运行结果如下:
温馨提示:取消弹框采用dialog.dismiss();
new materialdialog.builder(mainactivity.this) .title("标题") .content("内容;测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度测试长度") .positivetext("确认") .negativetext("取消") .icon(getresources().getdrawable(r.drawable.ic_launcher)) .show();
运行结果如下:
温馨提示:可以用maxiconsize(int size)限制图标最大size
new materialdialog.builder(mainactivity.this) .title("标题") .content("内容") .positivetext("确认") .negativetext("取消") .neutraltext("更多") .show();
运行结果如下:
//如果你想监听三种动作按钮,只用一个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(); } });
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("标题") .content("内容") .positivetext("确认") //第二次参数代表初始状态是否为勾选 .checkboxpromptres(r.string.isshowagain, true, null) .onany(new materialdialog.singlebuttoncallback() { @override public void onclick(materialdialog dialog, dialogaction which) { //dialog.ispromptcheckboxchecked()+""如果返回true,表示用户勾选了,false表示没有 toast.maketext(mainactivity.this, dialog.ispromptcheckboxchecked()+"", toast.length_short).show(); } }) .show();
运行结果如下:
final string[] array = {"aa","bb"}; new materialdialog.builder(mainactivity.this) .title("标题") .positivetext("确认") .negativetext("取消") .items(array) .itemscallback(new materialdialog.listcallback() { @override public void onselection(materialdialog dialog, view view, int which, charsequence text) { toast.maketext(mainactivity.this, which+"", toast.length_short).show(); } }) .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("标题") .items(array) .itemscallbacksinglechoice(-1, new materialdialog.listcallbacksinglechoice() { @override public boolean onselection(materialdialog dialog, view view, int which, charsequence text) { return true; } }) .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("标题") .positivetext("确认") .items(array) .itemscallbackmultichoice(null, new materialdialog.listcallbackmultichoice() { @override public boolean onselection(materialdialog dialog, integer[] which, charsequence[] text) { return true; } }) .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("title") .customview(r.layout.activity_main, true) .positivetext("choose") .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("title") //限制输入的长度 .inputrangeres(2, 20, r.color.colorprimary) //限制输入类型 .inputtype(inputtype.type_class_phone) .input("哈哈哈", null, new materialdialog.inputcallback() { @override public void oninput(materialdialog dialog, charsequence input) { toast.maketext(mainactivity.this, input, toast.length_short).show(); } }) .positivetext("确定") .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("提示框") .content("请稍等...") .progress(true, 0) .show();
运行结果如下:
new materialdialog.builder(mainactivity.this) .title("提示框") .content("请稍等...") .progress(true, 0) .progressindeterminatestyle(true) .show();
运行结果如下:
new materialdialog.builder(mainactivity.this).title("progress").content("please wait...").contentgravity(gravityenum.center).progress(false, 100, true).cancellistener(dialog -> { if (thread != null) { thread.interrupt(); } }).showlistener(dialoginterface -> { final materialdialog dialog = (materialdialog) dialoginterface; startthread(() -> { while (dialog.getcurrentprogress() != dialog.getmaxprogress() && !thread.currentthread().isinterrupted()) { if (dialog.iscancelled()) { break; } try { thread.sleep(50); } catch (interruptedexception e) { break; } dialog.incrementprogress(1); } runonuithread(() -> { thread = null; dialog.setcontent(getstring(r.string.md_done_label)); }); }); }).show();
运行结果如下:
(1)materialdialog可以通过以下方式设置颜色
// .titlecolorres(r.color.material_red_500) // .contentcolor(color.white) // notice no 'res' postfix for literal color // .linkcolorattr(r.attr.my_link_color_attr) // notice attr is used instead of none or res for attribute resolving // .dividercolorres(r.color.material_pink_500) // .backgroundcolorres(r.color.material_blue_grey_800) // .positivecolorres(r.color.material_red_500) // .neutralcolorres(r.color.material_red_500) // .negativecolorres(r.color.material_red_500) // .widgetcolorres(r.color.material_red_500) // .buttonripplecolorres(r.color.material_red_500)
(2)通过以下方式设置materialdialog主题
.theme(theme.dark)
(3)设置文字、按钮等内容的位置
.titlegravity(gravityenum.center) .contentgravity(gravityenum.center) .btnstackedgravity(gravityenum.start) .itemsgravity(gravityenum.end) .buttonsgravity(gravityenum.end)
(4)改变drawable被点击或聚焦时的状态
.btnselector(r.drawable.custom_btn_selector) .btnselector(r.drawable.custom_btn_selector_primary, dialogaction.positive) .btnselectorstacked(r.drawable.custom_btn_selector_stacked) .listselector(r.drawable.custom_list_and_stackedbtn_selector)!
链接:https://pan.baidu.com/s/1djfaw1xfvaoii8xgpwwarg
密码:sfd8
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论