MaterialDialogs源码解析(一)
来源:互联网 发布:什么叫开车 网络用词 编辑:程序博客网 时间:2024/05/23 00:02
概述
不久前接触到Material Dialogs这个第三方库,感觉用起来很方便,恰巧刚刚研究了View的整个绘制及工作原理,所以就产生了从源码角度了解一下这个库是如何实现的,进而增加对自定义View的认识。
要想了解一个第三方库,首先要弄清楚它是什么,即它的表现形式是怎样的?顾名思义,Material Dialogs是一个对话框,一个符合material思想的定制版的对话框。根据我的理解,该库的核心内容分为以下几种表现形式:
- Base dialog
- List dialog
- Progress dialog
- customView dialog
- input dialog
Base dialog
Base dialog是最基础的表现形式,界面如下图所示,分为上(title)、中(content)、下(action button)三部分,所有内容全部自定义,title和action button两部分可以按需显示,action button 有三个,分别是positive、neutral、negative。
List dialog
List dialog是以列表的形式表现的对话框,主体内容和Base dialog相同,不同之处在于其将中间content内容换成了列表;List dialog分为三种类型,分别为:
- BaseListDialog
- SingleChoiceDialog
- MultiChoiceDialog
List dialog的展示效果如下所示:
Progress dialog
Progress dialog 是展示进度条的对话框,主体内容和Base Dialog基本相同,不同之处在于其将中间content内容变成了进度条;此外,通常使用时不显示action button部分。Progress dialog有三种类型,分别为:
- Simple progress
- Indeterminate Horizontal progress
- Indeterminate progress
Progress dialog的效果图依次如下:
Custom View Dialog
Custom view dialog是展示自定义内容的对话框,主体内容和Base dialog相同,不同之处在于将content内容自定义化,可以放入任意的布局内容,如文本、列表、时间选择器等,效果图如下(不局限于此一种):
Input Dialog
Input dialog是一个可以输入文本的对话框,在Base dialog的基础之上将content内容设置为可输入内容,并自动对输入内容做出响应,效果图如下:
至此,关于material dialog这个第三方库的核心的使用效果就介绍完了,当然,并不仅仅局限于这些,利用它基本上可以实现任意类型的对话框需求了,是不是功能很强大。后面主要介绍代码的整体架构以及实现。最后附上官方代码地址material-dialogs
- MaterialDialogs源码解析(一)
- MaterialDialogs源码解析(二)
- MaterialDialogs源码解析(三)
- Irrlicht源码解析(一)
- tomcat源码解析(一)
- HDFS源码解析(一)
- OKHttp源码解析(一)
- OKHttp源码解析(一)
- SDWebImage源码解析(一)
- Connect 源码解析(一)
- OKHttp源码解析(一)
- Volley 源码解析(一)
- AFNetworking源码解析(一)
- OKHttp源码解析(一)
- Volley源码解析(一)
- WebViewJavaScriptBridge源码解析(一)
- Spark源码解析(一)
- Retrofit2源码解析(一)
- 如何定位一款产品?
- C语言--汉字逆置
- Okhttp连接https添加自产证书
- 腾讯社交广告高校算法大赛 baseline1
- 图论: 割点、桥(割边)、强连通分量 学习笔记
- MaterialDialogs源码解析(一)
- Django rest framework权限
- home键退出应用程序
- live555 (doEventLoop)
- python3-map,filter,reduce,lambda函数
- 数组中出现次数超过一半的数字
- 啊啊是的
- iOS中的定时操作比较和原理简单分析
- Mac_修改PATH后终端出现command not found解决办法