前言:FasterDialog是一个完全解耦弹窗逻辑与布局样式的三方框架,即便你的众多项目有不同的布局样式需求,只要引入FasterDialog就可以让你的所有项目都用同一份代码描述业务逻辑。
在你的项目设计中,你的UI设计师曾可能提过如下需求:
图1
图2
图3
针对以上的各式各样的需求,以前我们会在每个项目编写满足对应项目需要的Dialog。实际上,在自定义Dialog的过程中,我们发现除了布局或者控件位置样式等属性不同之外,剩余百分之90的逻辑代码都是相似或相同的。
那么,有没有那么一种办法,可以让我们无需书写这百分之90的重复性代码,通过某种协议协定一些规则,使我们的代码兼容所有的UI场景,而在使用的过程,只需要通过一个简单方法就可以将Dialog样式切换到指定布局方案。如下所示//使用上图1的布局方案
new NormalDialog(getContext()).setCustomView(R.layout.layout_1).setTitle("删除").setContent("确定要删除所选的一个会话吗?").setPositiveText("删除").setNegativeText("取消").show();
//使用上图2的布局方案
new NormalDialog(getContext()).setCustomView(R.layout.layout_2).setTitle("账号在其他设备登陆").setContent("您的支付宝账号于...(内容过长遂省略)").setPositiveText("好的").setNegativeText("重置密码").show();
//使用上图3的布局方案
new NormalDialog(getContext()).setCustomView(R.layout.layout_3).setTitle("确定注销").setContent("确定注销当前账号?").setPositiveText("