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

简介: 博主最近发现了一个万能的dialog库一、目前这个库具有的主要功能如下:material风格(v7支持包中的),ios风格,自动获取顶层activity,可在任意界面弹出,可在任意线程弹出。

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

相关文章
|
设计模式 开发框架 前端开发
项目开发中,真的有必要定义VO,BO,PO,DO,DTO这些吗?
存在即是合理的,业务复杂,人员协同性要求高的场景下,这些规范性的东西不按着来虽然不会出错,程序照样跑,但是遵守规范会让程序更具扩展性和可读性,都是前辈血淋淋的宝贵经验,为什么不用?
|
机器学习/深度学习 搜索推荐 数据可视化
小白入门机器学习必学案例分享。
小白入门机器学习必学案例分享。
1328 0
小白入门机器学习必学案例分享。
|
前端开发 UED 开发者
React.lazy()与Suspense:实现按需加载的动态组件——深入理解代码分割、提升首屏速度和优化用户体验的关键技术
【8月更文挑战第31天】在现代Web应用中,性能优化至关重要,特别是减少首屏加载时间和提升用户交互体验。React.lazy()和Suspense组件提供了一种优雅的解决方案,允许按需加载组件,仅在需要渲染时加载相应代码块,从而加快页面展示速度。Suspense组件在组件加载期间显示备选内容,确保了平滑的加载过渡。
523 0
|
Dart JavaScript
Flutter - Dart 基础(数据类型)
【2月更文挑战第3天】
511 1
|
移动开发 JavaScript Android开发
H5 video 自动播放(autoplay)不生效解决方案
H5 video 自动播放(autoplay)不生效解决方案
1410 0
|
iOS开发 MacOS
Mac下安装npm全局包提示权限不够
Mac下安装npm全局包提示权限不够
1254 0
程序人生 - 猫吃鸡胸肉的好处?
程序人生 - 猫吃鸡胸肉的好处?
458 0
|
Web App开发 数据采集 移动开发
客户端骨架屏详解
客户端骨架屏详解

热门文章

最新文章