• Stars
    star
    1,809
  • Rank 25,671 (Top 0.6 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💬 DialogX dialog box component library, easy to use, more customizable, more scalable, easy to achieve a variety of dialog boxes. DialogX对话框组件库,更加方便易用,可自定义程度更高,扩展性更强,轻松实现各种对话框、菜单和提示效果,更有Material You、iOS、MIUI等主题扩展可选

🌐 View English Document | 繁體中文文檔

Kongzue DialogX

一款简单易用的对话框组件,相比原生对话框使用体验更佳,可自定义程度更高,扩展性更强,轻松实现各种对话框、菜单和提示效果,更有iOS、MIUI、Material You等主题扩展可选。

DialogX

DialogX优势

对话框是一个软件对用户操作进行响应、反馈的重要组件,而 DialogX 将可以协助开发者快速完成这些事务。

我们力求减少开发者所需要担心的,所需要顾虑的,而打造一款可以在任意时间,任意情况都能轻松使用的对话框组件。

在轻松使用的前提下,DialogX 提供了更多的个性接口方便开发者进行扩展,包括在对话框内插入自定义布局,亮暗色模式的切换,甚至自定义更符合 App UI 的自定义主题。

DialogX的特性:

  • DialogX 采用全新的实现方式,默认 View 实现方式更为轻便,亦可选 Window、DialogFragment 实现方式,自由灵活。
  • DialogX 的启动与线程无关,你可以在任意线程启动 DialogX 而它都将自动在 UI 线程运行。
  • DialogX 的启动无需 context 参数,默认提供静态方法一句代码实现对话框的启动,使用更加方便。
  • 更自由,开发者可以轻松定制对话框中任何组件的样式,包括文本样式、按钮文字样式、菜单文本样式、输入文本样式,大到标题,小到提示消息都可以根据需要随意修改。
  • DialogX 采用主题分离设计,默认自带 Material 主题,可选引入 IOS、Kongzue、MIUI 等其他风格主题,大大减小 App 体积,同时提供了主题接口,如有定制需求完全可以自行实现一套私有主题。
  • 更低的耦合度,更少的问题,DialogX 可以在对话框正在运行的过程中随意关闭 Activity ,而无需担心以往 AlertDialog 等组件会引发的 WindowLeaked 错误。
  • 更流畅的体验,DialogX 的动画效果更加丰富,对话框启动动画采用非线性动画实现,更自带连贯的等待提示到完成错误动画过渡效果,让你的 APP 更具动感。
  • 所有主题默认支持亮暗色两种模式,只需一键配置即可实现亮暗色的对话框主题切换,更有自由的布局内容满足定制化需求,DialogX 也支持自动适应系统亮暗色模式切换,能够根据系统设置自动判断亮暗色显示效果的切换。
  • 轻松的实现对话框的生命周期管控以及沉浸式适配。

DialogX对话框

DialogX 包含以下对话框组件:

  • 基础对话框 MessageDialog和 输入对话框 InputDialog

    基础对话框 MessageDialog和 输入对话框 InputDialog

    基础对话框组件可以实现基本的对话框业务逻辑,包含标题、消息文本、单/双/三按钮的提醒功能,三个按钮可以按照纵向/横向进行显示,满足绝大部分日常阻断式提醒需求。

    输入对话框 InputDialog 是基础对话框的扩展组件,除了包含基础的功能外还提供了输入框,可自定义输入提示文本、输入文字样式和点击按钮后的输入内容回调等。

  • 等待框 WaitDialog 和提示框 TipDialog

    等待框 WaitDialog 和提示框 TipDialog

    阻断式等待提示框,会显示基础的环形等待动画以及进度展示动画,它是单例的,这就意味着从等待状态 WaitDialog 切换到提示状态 TipDialog 是无缝的,你可以自由的选择在等待结束后显示成功/警告/错误三种状态的消息提示,动画的切换也会无缝衔接。

  • 底部对话框 BottomDialog 和底部菜单 BottomMenu

    底部对话框 BottomDialog 和底部菜单 BottomMenu

    底部对话框 BottomDialog 提供从底部弹出显示的对话框样式,可设置标题、提示文本和自定义布局,使用 Material 主题时还会提供向下滑动关闭和向上滑动展开的功能。

    底部菜单 BottomMenu 则是底部对话框 BottomDialog 的扩展组件,在底部对话框的基础上额外提供了菜单功能,菜单可设置菜单内容/菜单图标/单选功能,在不同的主题下还可以提供“取消”关闭按钮

  • 简单提示 PopTip

    简单提示 PopTip

    提供一个类似 Toast 的文本提示功能,但它拥有更强大的自定义属性。你可以设置文本提示、图标、以及一个控制按钮,并可以设置持续显示或定义自动消失的时长。PopTip 是非阻断式提示,也就是说,在 PopTip 显示时用户依然可以操作界面。

  • 简单通知提示 PopNotification

    简单通知提示 PopNotification

    提供一个类似 Notification 的通知样式提示功能,请注意,此组件并不能取代 Notification,默认不支持不能跨界面显示(可使用悬浮窗权限设置允许),仅用于应用内通知提示,拥有更强大的自定义属性。你可以设置文本提示、图标、以及一个控制按钮,并可以设置持续显示或定义自动消失的时长。PopNotification 是非阻断式提示,也就是说,在 PopNotification 显示时用户依然可以操作界面。

  • 全屏对话框 FullScreenDialog

    全屏对话框 FullScreenDialog

    全屏对话框 FullScreenDialog 提供从底部弹出的对话框效果,类似 BottomDialog 但相比 BottomDialog 的定制化自由度更高。全屏对话框 FullScreenDialog 将不提供任何基础实现,开发者可以自定义实现布局。默认只提供一个默认的下划关闭逻辑和 Activity 背景下沉的显示效果。

  • 自定义对话框 CustomDialog

    自定义对话框 CustomDialog

    根据定制化自由度的对话框组件,完全由用户自行实现布局内容。CustomDialog 提供了 ALIGN 选项可以轻松定制对话框弹出的方式,默认支持屏幕中央、屏幕底部、屏幕顶部、屏幕左侧、屏幕右侧多种弹出模式,也会提供相应的弹出动画效果,当然用户也可以自定义动画效果。

  • 引导对话框 GuideDialog

    引导对话框 GuideDialog

可以实现一个遮罩展示操作引导图,或者对按钮进行操作提示指引。GuideDialog 可以围绕一个界面上的组件显示,并实现舞台光的效果,舞台光可选圆形(外围、内侧)、方形(外围、内侧)和矩形模式,方形和矩形可设置圆角。

DialogX主题

DialogX主题

DialogX 采用了主题分离结构,主框架仅包含 Material 设计风格的对话框组件,您可以通过额外引入主题包来实现主题的扩展。

额外的,每套主题都包含亮色/暗色两种显示风格,您可以通过 DialogX 的设置自由切换对话框的显示效果。

主题设计开发者也可以通过使用 DialogX 提供的主题定制接口来实现自定义主题,或者对现有主题进行样式调整和修改。

你还可以更深入的 了解如何使用 DialogX 主题

你还可以更深入的 了解如何开发 DialogX 主题

Demo

您可以先下载 Demo 进行尝试:http://beta.kongzue.com/DialogXDemo

下载Demo

开始使用 DialogX

因为依赖的关系,DialogX 目前仅支持 AndroidX 作为基础进行开发,若您正在使用最新版本的 Android Studio,那么默认创建的项目就是使用 AndroidX 作为底层框架的,老版本 Android Support 兼容库将在后续更新。

📥引入

请从以下两个源二选一引入项目。

MavenCentral 源(稳定版本更新)

最新版本: DialogX Release
  1. 在 project 的 build.gradle 文件中找到 allprojects{} 代码块添加以下代码:
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()      //增加 mavenCentral 仓库
    }
}

⚠️请注意,使用 Android Studio 北极狐版本(Arctic Fox)创建的项目,需要您前往 settings.gradle 添加上述 mavenCentral 仓库配置。

  1. 在 app 的 build.gradle 文件中找到 dependencies{} 代码块,并在其中加入以下语句:
def dialogx_version = "0.0.48"
implementation "com.kongzue.dialogx:DialogX:${dialogx_version}"

Jitpack 源(快速迭代测试版本更新)

最新版本: Jitpack.io 查看最新编译版本
  1. 在 project 的 build.gradle 文件中找到 allprojects{} 代码块添加以下代码:
allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }      //增加 jitPack Maven 仓库
    }
}

⚠️请注意,使用 Android Studio 北极狐版本(Arctic Fox)创建的项目,需要您前往 settings.gradle 添加上述 jitpack 仓库配置。

  1. 在 app 的 build.gradle 文件中找到 dependencies{} 代码块,并在其中加入以下语句:
def dialogx_version = "0.0.48"
implementation "com.github.kongzue.DialogX:DialogX:${dialogx_version}"

▶️使用

如何使用

具体的使用说明,请参阅 DialogX Wiki

🧩 扩展包

目前 DialogX 依然仅提供最基础的对话框实现,不提供进阶的功能模块,这是为了避免是您的应用变得臃肿。

但为了保证一些常用功能,例如 地址选择、日期选择以及“分享到”对话框等较为通用且常见的功能更为简单的能够使用,我们提供了扩展包以满足这些需求。

扩展包中,各个模块是单独引入的,您无需担心引入不必要的功能和资源。

扩展包目前尚处于初步开发阶段,要预览或提出你的建议,请访问:DialogXSample

DialogXSample

ℹ️使用过程遇到问题?

查看 常见问题

技术支持和反馈建议可以加讨论群:590498789

反馈 DialogX

❤️Powered By DialogX

Powered By DialogX

🚀 更多 >

🔁如何从 DialogV3 迁移至 DialogX

请参考文章 从 DialogV3 迁移至 DialogX

观星者

Stargazers over time

开源协议

DialogX 遵循 Apache License 2.0 开源协议。

Copyright Kongzue DialogX

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

贡献者

感谢所有为 DialogX 做出贡献的人!

如果 DialogX 帮助您更好的构建了您的软件,请为 DialogX 点一个小小的 Star,您的每一次点击对 DialogX 都是最大的支持!

Stargazers repo roster for @kongzue/DialogX

协助开发

More Repositories

1

DialogV3

🔥空祖家的对话框工具V3版,集成三种风格+夜间模式对话框,以及等待、提示、分享等特色对话框,支持花式自定义
Java
1,258
star
2

Dialog

🔥空祖家的对话框工具
Java
733
star
3

StackLabel

🔥空祖家的堆叠标签(以下碎念:一开始起名字“StackLabel”没想太多结果被人吐槽Stack是整齐堆叠的意思...........好吧这是我的锅不过现在要改也来不及了,好用就行了...吧?
Java
533
star
4

BaseFramework

🔥BaseFramework是一款基础适配框架,包含沉浸式适配、对 Activity、Fragment 以及 Adapter 的封装,并提供了一些诸如权限申请、跳转、延时操作、提示、日志输出等小工具,以方便快速构建 Android App
Java
467
star
5

BaseOkHttpV3

🔥OkHttp的二次封装库,提供各种快速使用方法以及更为方便的扩展功能。提供更高效的Json请求和解析工具以及文件上传下载封装,HTTPS和Cookie操作也更得心应手。
Java
202
star
6

Tabbar

🔥空祖家的导航栏工具
Java
142
star
7

DialogXSample

DialogX 计划提供模块扩展包库 这个库目的在于实现一些常用的模块功能,例如BottomDialog+地址选择、日期选择、分享对话框等半实现功能,你可以选择性的引入部分模块,配合DialogX完成功能的构建
Java
120
star
8

KongzueUpdateSDK

🔥Kongzue的App更新框架
Java
93
star
9

BTLinker

🔥空祖家的蓝牙连接封装库,适用于智能硬件蓝牙通讯
Java
69
star
10

WifiLinker

🔥空祖家的Wifi连接封装库,适用于智能硬件Wifi连接通讯
Java
61
star
11

EnjoyLife

😊开源App项目,每天一张精选倩图、一个精选小视频,一篇知乎美文
Java
45
star
12

TakePhoto

🔥Kongzue的APP拍照&相册选择工具
Java
43
star
13

WechatHelper

🔥微信 SDK 辅助组件,提供登录、支付和分享三个模块
Java
39
star
14

BaseJson

改进型 Json 解析库,快速解析 Json 为 Map 或 List 对象,甚至直接由 JsonList 创建列表可用的适配器。
Java
37
star
15

TitleBar

🔥空祖家的标题栏组件
Java
36
star
16

DBV3

🔥KongzueDB是对SQLite的封装,打通与 Json 的互转,适合轻量使用数据库的场景,半自动化快速创建表结构
Java
32
star
17

Notes

😊开源App项目,「记」——摒除杂质,专注创作
Java
31
star
18

OnePlusOxygenBusCardJumper

【闲的没事系列】用于一加7Pro氧OS调起公交卡的小工具
Java
25
star
19

HolderView

🔥用于加载过程、加载异常、加载失败、空数据的占位布局
Java
25
star
20

Runner

Kongzue Runner 旨在快速完成 App 逻辑构建,协助开发者低成本完成业务开发。提供一个独立的消息事件传递总线,不依赖 Intent 可以独立传递数据、执行事件,提供一套近乎全自动化的 ViewModel 框架,能够依据数据和 View 的对应关系自动实现数据绑定和界面适配
Java
20
star
21

UpdateUI

🔥Kongzue的App更新UI框架
Java
17
star
22

CameraXQRDecoder

此库是基于 CameraX 的二维码扫描封装、仅含基础功能(扫码、闪光灯),不包含扫码框动画,如有需要请自行实现。目的是解决以往原始 Camera 实现的扫码再较长屏幕设备上可能出现因画面纵向被拉伸导致识别率低的问题,相比于传统的 Camera,CameraX 的优势更大,启动速度响应速度都更快。
Java
17
star
23

BaseOkHttp

🔥OkHttp的二次封装,更好用,更易用,更标准
Java
15
star
24

BaseActivity

🛑Kongzue的适配布局的框架模块(已废弃,请参考https://github.com/kongzue/BaseFramework)
Java
13
star
25

DialogXStyle-Snackbar

适用于 DialogX 框架的 PopTip 组件的 Snackbar 主题包,含亮、暗色
12
star
26

Paywhere

😊花哪儿记账相关资料
HTML
10
star
27

BaseFramework-Support

🔥BaseFramework是一款基础适配框架,包含沉浸式适配、对 Activity、Fragment 以及 Adapter 的封装,并提供了一些诸如权限申请、跳转、延时操作、提示、日志输出等小工具,以方便快速构建 Android App,这个库是为了保留最后一个Support版本建立的
Java
10
star
28

BankInfo

💳银行卡号前缀和银行卡名称类型对应关系资料整理
Java
9
star
29

DebugSDK

🚫【已废弃】Kongzue的崩溃日志处理抓取工具,已合并至BaseFramework框架,不再单独更新
Java
9
star
30

ClassSeatChangeDemo

😊帮朋友做的座位调换 Demo
Java
8
star
31

DB

🚫【已废弃】请更新使用DBV3库。KongzueDB是对SQLite的封装,适合轻量使用数据库的场景,半自动化快速创建表结构
Java
7
star
32

lsDirectory

😊雷神通讯录是一款支持小型团队协作的通讯软件
Java
6
star
33

PaywhereSemanticRecognition

😊花哪儿语义识别核心模块
Java
6
star
34

SafeLayout

用来取代fitsSystemWindows的设置安全区的组件,默认实现了SafeFrameLayout、SafeLinearLayout、SafeRelativeLayout和SafeViewGroup
Java
6
star
35

AnalogTouch

😊模拟自动点击的一个APP,需要root权限,支持当机器检测功能
Java
6
star
36

Find

😊《寻》社交APP
Java
4
star
37

BuildingMapView

🛑专业领域使用的自绘地图组件
Java
4
star
38

ToFuture

给未来写封信-公开资料
HTML
3
star
39

Example

😊Kongzue全家桶实现范例
Java
3
star
40

Dome

😊A team transaction synchronization tool that can assign tasks to other members and monitor progress. More features to expand ...
Java
3
star
41

Res

🛑这里没啥东西,真的
2
star
42

Wakeup

😊抬手唤醒APP相关资料库
HTML
2
star
43

kongzue

简介
2
star
44

BaseVolley

🔥Volley的二次封装,更好用,更易用,更标准
Java
2
star
45

BaseFragment

🛑Kongzue的适配布局的框架模块(已废弃,请参考https://github.com/kongzue/BaseFramework)
Java
2
star
46

DialogXDemo

1
star
47

YTGuide

游移通
Java
1
star
48

RefreshLayout

⭐基于SwipeRefreshLayout的改良版
Java
1
star
49

ServletTest

Java
1
star
50

JdbcUtil

Java
1
star
51

Android-Notes

Android开发中遇到的一些坑,已弃,请移驾简书
GCC Machine Description
1
star
52

Preferences

🛑SharedPreferences的简易封装(已废弃,请参考https://github.com/kongzue/BaseFramework)
Java
1
star
53

MagicDayNightSwitchButton

随手照着网上看到的一个视频日夜切换按钮效果的练习作品,用到的技术是 MotionLayout
Java
1
star
54

kongzue.github.io

🚩关于开发的指导性意见,请直接访问 kongzue.github.io
HTML
1
star
55

nowShare

nowshare project
Java
1
star