共计 2422 个字符,预计需要花费 7 分钟才能阅读完成。
应用 DialogX 疾速构建 Android App 对话框
传统原生对话框组件存在着 内存透露 、自定义水平有余的问题,开发时常会因为遇到各式各样的奇葩解体而懊恼,面对着产品和设计师诸如“对话框圆角大一些”、“能不能照着iOS
设计稿的含糊成果做”、“下滑列表界面主动关掉对话框”等等诸多需要又难以解决,又不想每次封装或编写一大堆的代码去实现某一个小小的提示框需要,你能够试试 DialogX
,它足以满足大部分场景下疾速实现对话框、阻断提示框、非阻断提示框、底部对话框等等各式各样的对话框组件,又能完满满足各种主题和性能扩大需要,极大中央便了开发流程,帮忙你疾速构建利用对话框性能。
易用性比照
比照传统 AlertDialog,DialogX 具备很大的劣势:
- DialogX 采纳全新的实现形式,默认 View 实现形式更为轻便,亦可选 Window、DialogFragment 实现形式,自在灵便。
- DialogX 的启动与线程无关,你能够在任意线程启动
DialogX
而它都将主动在 UI 线程运行。 - DialogX 的启动无需 context 参数,默认提供静态方法一句代码实现对话框的启动,应用更加不便。
- 更自在,开发者能够轻松定制对话框中任何组件的款式,包含文本款式、按钮文字款式、菜单文本款式、输出文本款式,大到题目,小到提醒音讯都能够依据须要随便批改。
- DialogX 采纳主题拆散设计,默认自带 Material 主题,可选引入 IOS、Kongzue、MIUI 等其余格调主题,大大减小 App 体积,同时提供了主题接口,如有定制需要齐全能够自行实现一套公有主题。
- 更低的耦合度,更少的问题,
DialogX
能够在对话框正在运行的过程中随便敞开 Activity,而无需放心以往 AlertDialog 等组件会引发的 WindowLeaked 谬误。 - 更晦涩的体验,DialogX 的动画成果更加丰盛,对话框启动动画采纳非线性动画实现,更自带连贯的期待提醒到实现谬误动画过渡成果,让你的 APP 更具动感。
- 所有主题默认反对亮暗色两种模式,只需一键配置即可实现亮暗色的对话框主题切换,更有自在的布局内容满足定制化需要,
DialogX
也反对主动适应零碎亮暗色模式切换,可能依据零碎设置主动判断亮暗色显示成果的切换。 - 轻松的实现对话框的生命周期管控以及沉迷式适配。
简略来讲,个别咱们要编写一个 AlertDialog
,实现一个简简单单的提醒确认,至多须要以下代码:
AlertDialog Demo
// 构建 AlertDialog Builder
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("题目");
builder.setMessage("这里是注释内容。");
builder.setCancelable(true); // 点击对话框以外的区域是否让对话框隐没
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {Toast.makeText(context, "你点击了是的", Toast.LENGTH_SHORT).show();
dialog.dismiss();}
});
AlertDialog dialog = builder.create();
dialog.show(); // 显示对话框
MessageDialog Demo
MessageDialog.show("题目", "这里是注释内容。", "确定");
当然,你也能够依据本人的习惯应用 build 办法 构建:
MessageDialog.build()
.setTitle("题目")
.setMessage("这里是注释内容。")
.setOkButton("确定")
.show();
单从代码量上来说,DialogX
都更为不便,其次 DialogX 还具备很多独特的劣势,在编码的过程中你都会感觉到,编写一个想要的对话框将变得十分的简略。
DialogX 也反对 null
输出,只有你想,你能够指定任何元素不要显示,给它设置 null 即可。
满足需要的各式各样的组件
DialogX 蕴含多种组件,音讯提示框 MessageDialog 和基于它的抉择对话框、输出对话框 InputDialog,满足根底的对话框场景需要,默认为 Material 主题款式。
阻断式提示框 WaitDialog
,以及提示框 TipDialog,适宜须要强提醒,同时阻止用户持续操作界面的场景,组合应用时,这两个组件能够连接应用,即能够从 WaitDialog 处于显示时通过动画无缝连接适度到 TipDialog,TipDialog 默认蕴含 “实现”、“正告”、“谬误” 三种状态,WaitDialog 默认蕴含循环转圈、显示进度两种模式:
底部对话框 BottomDialog 满足屏幕下部弹出对话框的需要,Material 主题自带下滑敞开性能,也能够间接应用底部菜单 BottomMenu 疾速实现用户抉择需要。
非阻断提醒 PopTip 相似于 Toast,在显示提醒时用户能够持续操作界面,能够疾速设置显示内容、自定义显示时长,自定义图标和操作按钮
全屏对话框 FullScreenDialog 能够实现悬浮一个对话框界面层到以后 Activity 上,而 Activity 显示的内容将有肯定“下沉”的动画成果,实用于须要全屏解决的操作需要:
另外 DialogX 还提供了 CustomDialog 以满足齐全的自定义需要,在 CustomDialog 中,所有的所有基于你本人的 layout 布局实现,你还能够轻松管制背景遮罩、本人的布局须要显示的地位,甚至能够绑定显示到某一个 Activity 界面元素四周用于疏导提醒需要: