Kongzue DialogX: an Android dialog library with swappable themes
DialogX dialog box component library - easy to use, highly customizable, and extensible, making it easy to build a variety of dialogs, menus and prompts, with optional Material You, iOS and MIUI theme extensions.
At a glance
- What is it?
- A Java component set for message, input, wait, tip, bottom sheet, pop tip and full screen dialogs, where the base module stays small and iOS, MIUI and Material You looks ship separately.
- Who is it for?
- DialogX is worth considering when one dialog component has become several half-finished ones in your app, because the library's actual pitch is a coherent set rather than a single clever widget. The base module covers the blocking cases and the non-blocking ones, and the theme separation means an application that only wants Material pays only for Material.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 120 days ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A component set, not a single widget
The README enumerates nine dialog components and each one links to its own wiki page rather than to documentation in the repository. That distribution is deliberate, and it is the first thing to know before reading further.
`MessageDialog` and `InputDialog` handle the blocking cases. MessageDialog covers a title, message text, and one, two, or three buttons arranged either vertically or horizontally, which is most day to day interruption needs. InputDialog extends it with a text field, and the placeholder text, the text styling, and the callback receiving what was typed are all configurable.
`WaitDialog` and `TipDialog` are a single instance by design, and the README makes a point of it. Because both are singletons, switching from a wait state to a tip state is seamless: the ring animation gives way to a success, warning, or error message with no visual seam, and the choice among those three outcomes is yours after the wait finishes.
`BottomDialog` and `BottomMenu` cover the bottom sheet pattern, with the menu adding selectable items, icons, and a single-select option. Under the Material theme, the bottom dialog also gains drag-to-dismiss and drag-to-expand.
The non-blocking pieces are `PopTip`, a Toast-like message with more properties than a Toast has, and `PopNotification`, a Notification-styled in-app message. The README is explicit that PopNotification cannot replace a real Notification and does not cross activities by default unless you grant the overlay permission.
`FullScreenDialog` ships no built-in content at all, only a default underline close affordance and a dimmed activity behind it. `CustomDialog` goes further and lets you choose the entry edge, with centre, bottom, top, left, and right presets and matching animations. `GuideDialog`, marked beta in its wiki link, does spotlight overlays on a component in your own layout, with circular, square, and rectangular shapes and configurable corner radii.
Theme separation is the architectural decision
The base module ships Material styling only. Everything else arrives as an additional artifact, and the repository tree makes that concrete: `DialogX/` for the base, `DialogXIOSStyle/`, `DialogXMIUIStyle/`, `DialogXMaterialYou/`, `DialogXKongzueStyle/`, and `DialogXInterface/` for the shared contract that themes implement.
The README states the reason, which is application size. You add the themes you want and leave out the ones you do not, which is a real concern on Android where every dependency is measured in methods and bytes. Each theme also carries light and dark variants, and switching between them is a setting rather than a rebuild. The README further describes an interface for building your own theme or restyling an existing one, with separate wiki pages for using and authoring themes.
A note on scope: the library's own highlight list claims low coupling because it destroys its dialogs when the hosting activity goes away at runtime, which is aimed at avoiding WindowLeaked errors. That is a genuine improvement over raw dialogs, and it is also a behaviour you should understand before relying on it, because a dialog that dismisses itself on activity teardown is not always what an analytics screen or a confirmation flow wants.
Installing from Maven Central or JitPack
The README requires AndroidX as the base and says the older Support compatibility library will arrive in a later update. It offers two sources and asks you to pick one.
Maven Central is described as the stable channel. You add the repository to the `allprojects` block in your project-level `build.gradle`:
allprojects {
repositories {
google()
mavenCentral()
}
}Then you add the dependency in your app module:
def dialogx_version = "0.0.49"
implementation "com.kongzue.dialogx:DialogX:${dialogx_version}"JitPack is described as the faster-iterating test channel. The README notes that projects created with Android Studio Arctic Fox need the same Maven Central repository line added in `settings.gradle` instead, which is a Gradle behaviour change rather than anything specific to this library.
Here is the discrepancy worth planning around. The pinned `dialogx_version` is 0.0.49 and the surrounding text calls it the latest version, but the most recent published tag is 0.0.51.beta4 from 2026-05-24. The stable line and the newest line are therefore different artifacts, and the beta numbering scheme means there is no semantic version to reason about. If you take the beta, you are opting into a line whose release notes are mostly fixes.
What the 0.0.51 beta releases actually fixed
The three most recent tags are all in the 0.0.51 beta series, and their contents describe the project more honestly than the feature list does.
`0.0.51.beta3`, from 2026-05-03, is a toolchain upgrade: Gradle Wrapper to 8.9, Android Gradle Plugin to 8.7.3, and the introduction of `gradle/libs.versions.toml` for unified version management. It also completes the AGP 8 migration work for namespaces, BuildConfig, and final `R`, fixes a lint error about API 21 constructors under minSdk 19 by adding annotations, and extends PopMenu with new public methods and corrected animation calculations.
`0.0.51.beta4`, from 2026-05-24, fixes a specific back-press bug: PopTip and PopNotification were handling back presses in a way that stopped the activity from receiving the event, plus a ClassCastException merged from a community pull request.
`0.0.51.beta2.ai`, from 2026-04-05, is named for an action build test and its entire release note is the word "test". It is in the history as a tag rather than as a release, which is the kind of thing you find when a maintainer is experimenting with CI publishing.
Taken together, the minSdk 19 lint fix and the AGP 8 namespace work tell you the library still supports quite old Android versions while targeting current build tooling, which is an unusual and useful combination for a UI library that has to run on whatever hardware a user's router or set-top box happens to be.
Project shape, license, and what the repository does not contain
Alongside the theme modules, the tree holds `app/` for a demo application, `readme/` for the screenshots the README embeds, `build.gradle`, `settings.gradle`, `gradle.properties`, and the `LICENSE.txt` file. The Apache 2.0 license matches the badge in the README, and the project sits at 2,358 stars and 253 forks.
Open issues number four, which is unusually low for a component library of this size and suggests either a low-traffic maintenance load or a community that reports elsewhere. The second reading has support: the README links a separate demo application at beta.kongzue.com and a homepage on kongzue.com, so the author's own site is the natural place to look for announcements and for the wiki in English.
One documentation caveat that matters for English readers specifically. The repository tree contains `README.md`, `README_EN.md`, and `README_TC.md`, so an English version and a traditional Chinese version both exist. The English document is a translation of the feature catalogue rather than a replacement, and every component still resolves to a wiki page. If you are evaluating this library, the wiki pages are the real documentation and the README is the table of contents.
Editorial conclusion
DialogX is worth considering when one dialog component has become several half-finished ones in your app, because the library's actual pitch is a coherent set rather than a single clever widget. The base module covers the blocking cases and the non-blocking ones, and the theme separation means an application that only wants Material pays only for Material. Two practical notes before you start. The pinned version in the installation instructions is 0.0.49 while the most recent published tag is a 0.0.51 beta, so the stable path and the newest path are not the same artifact, and the choice is yours to make. And every component is documented on the project wiki rather than in the repository, linked from the component list. The repository tree, with one directory per theme package, is the clearest statement of the design.
Frequently asked questions
Which Android versions does DialogX support?
The library requires AndroidX as its base, and the release notes for 0.0.51.beta3 include a lint fix for API 21 constructors under minSdk 19, which implies support back to API 19. The README says the older Support compatibility library will be supported in a later update, so a project still on Support cannot use it yet.
How do I add the Material You or iOS theme?
Themes are separate artifacts from the base library, which is how the project keeps application size down. The repository has one directory per theme package, DialogXMaterialYou, DialogXIOSStyle, DialogXMIUIStyle, and DialogXKongzueStyle, alongside the base DialogX module and the shared DialogXInterface. You depend only on the themes you intend to use.
Can PopNotification replace a real Android Notification?
No. The README states directly that PopNotification cannot replace a Notification, and that it does not display across activities by default unless the overlay permission is granted. It is intended for in-app messages only, positioned somewhere between a Toast and a system notification in behaviour.
Which version of DialogX should I depend on?
The installation instructions pin 0.0.49 as the current version and point at Maven Central for stable releases, while the most recent published tag is 0.0.51.beta4 from May 2026. Use the pinned stable line unless you want the AGP 8 fixes in the beta series, in which case expect to read the release notes yourself since the beta numbering carries no semantic version information.
Does DialogX work with the old Support library?
Not yet. The README states that DialogX currently supports only AndroidX as its base, and that compatibility with the older Android Support library will come in later updates. If your project has not migrated, this is a hard blocker rather than a caveat.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/kongzue-dialogx)