为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Android

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



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
4484
获赞与收藏
456

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消