Skip to content

Latest commit

 

History

History
261 lines (162 loc) · 14.6 KB

README_TC.md

File metadata and controls

261 lines (162 loc) · 14.6 KB

🌐 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 添加上述 jitpack 倉庫配置。

  1. 在 app 的 build.gradle 文件中找到 dependencies{} 代碼塊,並在其中加入以下語句:
def dialogx_version = "0.0.49"
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.49"
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

協助開發