🌐 View 简体中文文档 | English Document
一款簡單易用的對話框組件,相比原生對話框使用體驗更佳,可自訂程度更高,擴展性更強,輕鬆實現各種對話框、菜單和提示效果,更有iOS、MIUI、Material You等主題擴展可選。
對話框是軟件與用戶互動的關鍵部分,DialogX 讓開發者輕鬆搞定這一切,我們致力於打造一款無論何時何地都能便捷使用的對話框組件,讓開發者少操心、多做事,DialogX 不僅易用,還提供了豐富的個性化接口,比如自定義佈局、日夜模式切換和專屬 App 主題的創建
DialogX 包含以下對話框組件:
基礎對話框組件可以實現基本的對話框業務邏輯,包含標題、消息文本、單/雙/三按鈕的提醒功能,三個按鈕可以按照縱向/橫向進行顯示,滿足絕大部分日常阻斷式提醒需求。
輸入對話框 InputDialog 是基礎對話框的擴展組件,除了包含基礎的功能外還提供了輸入框,可自訂輸入提示文本、輸入文字樣式和點擊按鈕後的輸入內容回調等。
阻斷式等待提示框,會顯示基礎的環形等待動畫以及進度展示動畫,它是單例的,這就意味著從等待狀態 WaitDialog 切換到提示狀態 TipDialog 是無縫的,你可以自由的選擇在等待結束後顯示成功/警告/錯誤三種狀態的消息提示,動畫的切換也會無縫銜接。
底部對話框 BottomDialog 提供從底部彈出顯示的對話框樣式,可設置標題、提示文本和自訂布局,使用 Material 主題時還會提供向下滑動關閉和向上滑動展開的功能。
底部選單 BottomMenu 則是底部對話框 BottomDialog 的擴展組件,在底部對話框的基礎上額外提供了菜單功能,菜單可設置菜單內容/菜單圖示/單選功能,在不同的主題下還可以提供“取消”關閉按鈕
提供一個類似 Toast 的文本提示功能,但它擁有更強大的自訂屬性。你可以設置文本提示、圖示、以及一個控制按鈕,並可以設置持續顯示或定義自動消失的時長。PopTip 是非阻斷式提示,也就是說,在 PopTip 顯示時用戶依然可以操作界面。
提供一個類似 Notification 的通知樣式提示功能,請注意,此組件並不能取代 Notification,默認不支持不能跨界面顯示(可使用懸浮窗權限設定允許),僅用於應用內通知提示,擁有更強大的自訂屬性。你可以設置文本提示、圖示、以及一個控制按鈕,並可以設置持續顯示或定義自動消失的時長。PopNotification 是非阻斷式提示,也就是說,在 PopNotification 顯示時用戶依然可以操作界面。
全螢幕對話框 FullScreenDialog 提供從底部彈出的對話框效果,類似 BottomDialog 但相比 BottomDialog 的訂製化自由度更高。全螢幕對話框 FullScreenDialog 將不提供任何基礎實現,開發者可以自訂實現布局。默認只提供一個預設的下劃關閉邏輯和 Activity 背景下沉的顯示效果。
根據訂製化自由度的對話框組件,完全由用戶自行實現布局內容。CustomDialog 提供了 ALIGN 選項可以輕鬆訂製對話框彈出的方式,默認支持螢幕中央、螢幕底部、螢幕頂部、螢幕左側、螢幕右側多種彈出模式,也會提供相應的彈出動畫效果,當然用戶也可以自訂動畫效果。
可以實現一個遮罩展示操作引導圖,或者對按鈕進行操作提示指引。GuideDialog 可以圍繞一個界面上的組件顯示,並實現舞台光的效果,舞台光可選圓形(外圍、內側)、方形(外圍、內側)和矩形模式,方形和矩形可設置圓角。
DialogX 採用了主題分離結構,主框架僅包含 Material 設計風格的對話框組件,您可以透過額外引入主題包來實現主題的擴展。
額外的,每套主題都包含亮色/暗色兩種顯示風格,您可以通過 DialogX 的設置自由切換對話框的顯示效果。
主題設計開發者也可以透過使用 DialogX 提供的主題訂製介面來實現自訂主題,或者對現有主題進行樣式調整和修改。
你還可以更深入的 了解如何使用 DialogX 主題
你還可以更深入的 了解如何開發 DialogX 主題
您可以先下載 Demo 進行嘗試:http://beta.kongzue.com/DialogXDemo
因為依賴的關係,DialogX 目前僅支持 AndroidX 作為基礎進行開發,若您正在使用最新版本的 Android Studio,那麼默認創建的項目就是使用 AndroidX 作為底層框架的,老版本 Android Support 相容庫將在後續更新。
請從以下兩個源二選一引入項目。
1) 在 project 的 build.gradle 文件中找到 allprojects{}
代碼塊添加以下代碼:
allprojects {
repositories {
google()
jcenter()
mavenCentral() //增加 mavenCentral 倉庫
}
}
⚠️請注意,使用 Android Studio 北極狐版本(Arctic Fox)創建的項目,需要您前往 settings.gradle 添加上述 jitpack 倉庫配置。
2) 在 app 的 build.gradle 文件中找到 dependencies{}
代碼塊,並在其中加入以下語句:
def dialogx_version = "0.0.49"
implementation "com.kongzue.dialogx:DialogX:${dialogx_version}"
1) 在 project 的 build.gradle 文件中找到 allprojects{}
代碼塊添加以下代碼:
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' } //增加 jitPack Maven 倉庫
}
}
⚠️請注意,使用 Android Studio 北極狐版本(Arctic Fox)創建的項目,需要您前往 settings.gradle 添加上述 jitpack 倉庫配置。
2) 在 app 的 build.gradle 文件中找到 dependencies{}
代碼塊,並在其中加入以下語句:
def dialogx_version = "0.0.49"
implementation "com.github.kongzue.DialogX:DialogX:${dialogx_version}"
具體的使用說明,請參閱 DialogX Wiki
目前 DialogX 依然僅提供最基礎的對話框實現,不提供進階的功能模組,這是為了避免是您的應用變得臃腫。
但為了保證一些常用功能,例如 地址選擇、日期選擇以及“分享到”對話框等較為通用且常見的功能更為簡單的能夠使用,我們提供了擴展包以滿足這些需求。
擴展包中,各個模組是單獨引入的,您無需擔心引入不必要的功能和資源。
擴展包目前尚處於初步開發階段,要預覽或提出你的建議,請訪問:DialogXSample
查看 常見問題
技術支援和回饋建議可以加討論群:590498789
🚀 更多 >
請參考文章 從 DialogV3 遷移至 DialogX
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 都是最大的支持!