博主最近发现了一个万能的dialog库
一、目前这个库具有的主要功能如下:
material风格(v7支持包中的),ios风格,自动获取顶层activity,可在任意界面弹出,可在任意线程弹出。(也就是说安卓也可以实现ios风格的dialog,666,是不是吊炸天呢?博主再也不会被ios哥们嘲笑了。博主也可以轻松实现它们系统dialog的效果)
二、先看一下1.1.5版本的特性:
★ loading对话框和ios风格的dialog传入context和activity均可弹出dialog.
★ 样式包括常用的ios风格dialog和meterial design风格的dialog.
★ 自定义样式:可以传入自定义的view,定义好事件,本工具负责显示
★ 考虑了显示内容超多时的滑动和与屏幕的间隙.
三、使用前的导包:
步骤1.将JitPack存储库添加到您的构建文件中
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
步骤2.添加依赖关系
dependencies {
compile 'com.github.hss01248:DialogUtil:1.1.5'
}
最新版本请看这里的版本是多少,就写多少:
https://github.com/hss01248/DialogUtil/releases
四、初始化
五、示例代码(比如在MainActivity里面)
以下代码是模仿ios的dialog风格(布局里面定义一个button就行了),运行图如下图:
代码如下:
六、相关回调源码解析
MyDialogListener源码解释:
MyItemDialogListener源码解释:
七、不同样式加载使用方法
(1)ios样式的加载
buildLoading( )
buildLoading( CharSequence msg)
updateLoadingMsg(final String msg)//更新msg
(2)android样式的加载
buildMdLoading( )
buildMdLoading( CharSequence msg)
updateLoadingMsg(final String msg)//更新msg
(3)ProgressDialog的水平
buildProgress( CharSequence msg,boolean isHorizontal)
//更新进度
updateProgress(final Dialog dialog, final int progress, final int max, final CharSequence msg, final boolean isHorizontal)
(4)ProgressiveDialog of Spinner,用文字显示的进度(自动计算):
(5)Appcompat-v7的AlertDialog
1)buildMdAlert( CharSequence title, CharSequence msg, MyDialogListener listener)
2)buildMdSingleChoose( CharSequence title, int defaultChosen, CharSequence[] words, MyItemDialogListener listener)
3)buildMdMultiChoose( CharSequence title, CharSequence[] words, List selectedIndexs, MyDialogListener btnListener)
(6)IOS风格(含按下效果)
1)buildIosAlert( CharSequence title, CharSequence msg, MyDialogListener listener)
2)buildIosAlertVertical( CharSequence title, CharSequence msg, MyDialogListener listener)
3)buildNormalInput( CharSequence title, CharSequence hint1,
CharSequence hint2,CharSequence firstTxt, CharSequence secondTxt, MyDialogListener listener)
4)buildIosSingleChoose( List words, MyItemDialogListener listener)
5)buildBottomItemDialog( List words, CharSequence bottomTxt, MyItemDialogListener listener)
(7)BottomSheetDialog的设计
1)buildBottomSheetLv(CharSequence title, List datas, CharSequence bottomTxt, MyItemDialogListener listener)
2)buildBottomSheetGv( CharSequence title, List datas, CharSequence bottomTxt, int columnsNum ,MyItemDialogListener listener)
(8)GridView中拉出来时:
(9)弹出自己定义的一个视图:(示例图中有一个网页视图)
ViewGroup customView = (ViewGroup) View.inflate(this,R.layout.customview,null);
final ConfigBean bean = StyledDialog.buildCustom(customView, Gravity.CENTER);
final Dialog dialog1 = bean.show();
github地址如下:
https://github.com/glassLake/DialogUtils(这个库已经停止更新)请移步下面这个库:
https://github.com/hss01248/DialogUtil (博主目前使用的是1.1.5版本)