继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕仰1870381
关注TA
已关注
手记 53
粉丝 4483
获赞 456

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

四、初始化


webp

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

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


webp

代码如下:


webp

六、相关回调源码解析

MyDialogListener源码解释:

webp


MyItemDialogListener源码解释:


webp

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

(1)ios样式的加载

  buildLoading( )

  buildLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg


webp

(2)android样式的加载

  buildMdLoading( )

  buildMdLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg


webp

(3)ProgressDialog的水平

  buildProgress( CharSequence msg,boolean isHorizontal)

  //更新进度

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


webp

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


webp

(5)Appcompat-v7的AlertDialog

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

webp

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


webp

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


webp

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

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


webp

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


webp

3)buildNormalInput( CharSequence title, CharSequence hint1,

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


webp

4)buildIosSingleChoose( List words, MyItemDialogListener listener)


webp

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


webp

(7)BottomSheetDialog的设计

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


webp

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


webp

(8)GridView中拉出来时:


webp

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

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

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

final Dialog dialog1 =  bean.show();


webp



github地址如下:

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

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



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP