万能的dialog库(包括类似popwindow效果)

博主最近发现了一个万能的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

四、初始化


万能的dialog库(包括类似popwindow效果)_第1张图片

五、示例代码(比如在MainActivity里面)

以下代码是模仿ios的dialog风格(布局里面定义一个button就行了),运行图如下图:


万能的dialog库(包括类似popwindow效果)_第2张图片

代码如下:


万能的dialog库(包括类似popwindow效果)_第3张图片

六、相关回调源码解析

MyDialogListener源码解释:

万能的dialog库(包括类似popwindow效果)_第4张图片


MyItemDialogListener源码解释:


万能的dialog库(包括类似popwindow效果)_第5张图片

七、不同样式加载使用方法

(1)ios样式的加载

  buildLoading( )

  buildLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg


万能的dialog库(包括类似popwindow效果)_第6张图片

(2)android样式的加载

  buildMdLoading( )

  buildMdLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg


万能的dialog库(包括类似popwindow效果)_第7张图片

(3)ProgressDialog的水平

  buildProgress( CharSequence msg,boolean isHorizontal)

  //更新进度

  updateProgress(final Dialog dialog, final int progress, final int max, final CharSequence msg, final boolean isHorizontal)


万能的dialog库(包括类似popwindow效果)_第8张图片

(4)ProgressiveDialog of Spinner,用文字显示的进度(自动计算):


万能的dialog库(包括类似popwindow效果)_第9张图片

(5)Appcompat-v7的AlertDialog

1)buildMdAlert( CharSequence title, CharSequence msg, MyDialogListener listener)

万能的dialog库(包括类似popwindow效果)_第10张图片

2)buildMdSingleChoose( CharSequence title, int defaultChosen, CharSequence[] words, MyItemDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第11张图片

3)buildMdMultiChoose( CharSequence title, CharSequence[] words, List selectedIndexs, MyDialogListener btnListener)


万能的dialog库(包括类似popwindow效果)_第12张图片

(6)IOS风格(含按下效果)

1)buildIosAlert( CharSequence title, CharSequence msg, MyDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第13张图片

2)buildIosAlertVertical( CharSequence title, CharSequence msg, MyDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第14张图片

3)buildNormalInput( CharSequence title, CharSequence hint1,

         CharSequence hint2,CharSequence firstTxt, CharSequence secondTxt, MyDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第15张图片

4)buildIosSingleChoose( List words, MyItemDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第16张图片

5)buildBottomItemDialog( List words, CharSequence bottomTxt, MyItemDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第17张图片

(7)BottomSheetDialog的设计

1)buildBottomSheetLv(CharSequence title, List datas, CharSequence bottomTxt, MyItemDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第18张图片

2)buildBottomSheetGv( CharSequence title, List datas, CharSequence bottomTxt, int columnsNum ,MyItemDialogListener listener)


万能的dialog库(包括类似popwindow效果)_第19张图片

(8)GridView中拉出来时:


万能的dialog库(包括类似popwindow效果)_第20张图片

(9)弹出自己定义的一个视图:(示例图中有一个网页视图)

ViewGroup customView = (ViewGroup) View.inflate(this,R.layout.customview,null);

final ConfigBean bean = StyledDialog.buildCustom(customView, Gravity.CENTER);

final Dialog dialog1 =  bean.show();


万能的dialog库(包括类似popwindow效果)_第21张图片


github地址如下:

https://github.com/glassLake/DialogUtils(这个库已经停止更新)请移步下面这个库:

https://github.com/hss01248/DialogUtil   (博主目前使用的是1.1.5版本)

你可能感兴趣的:(万能的dialog库(包括类似popwindow效果))