-
Notifications
You must be signed in to change notification settings - Fork 217
home_tc
🌐 View English Document | 简体中文文档
請從以下兩個源二選一引入項目。
- 在 project 的 build.gradle 文件中找到
allprojects{}
代碼塊添加以下代碼:
allprojects {
repositories {
google()
jcenter()
mavenCentral() //增加 mavenCentral 倉庫
}
}
- 在 app 的 build.gradle 文件中找到
dependencies{}
代碼塊,並在其中加入以下語句:
def dialogx_version = "0.0.49"
implementation "com.kongzue.dialogx:DialogX:${dialogx_version}"
- 在 project 的 build.gradle 文件中找到
allprojects{}
代碼塊添加以下代碼:
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' } //增加 jitPack Maven 倉庫
}
}
- 在 app 的 build.gradle 文件中找到
dependencies{}
代碼塊,並在其中加入以下語句:
//請將 dialogx_version 的值替換為最新版本
def dialogx_version = "0.0.49"
implementation "com.github.kongzue.DialogX:DialogX:${dialogx_version}"
從 0.0.43.beta8 起,下調了最低 API 相容版本至 19,但請注意低於 21 時,部分效果,例如底部選單對話框的圖示染色無法使用。
新手開發可以參考此文章引入配置 DialogX:【新手教學】手把手教你如何引入DialogX到自己的項目裡使用
請在使用 DialogX 前,首先需要進行配置。
一般建議在 Application 的實現類中的 onCreate 方法中進行配置:
//初始化
DialogX.init(this);
配置完畢後就可以顯示對話框了。
要使用開啟組件的即時模糊效果(例如IOS主題),還需在 app 的 build.gradle 文件中找到android{defaultConfig{...}}
代碼塊,在其中添加配置:
renderscriptTargetApi 21
renderscriptSupportModeEnabled true
要進行額外設置,可參考如下代碼:
//開啟除錯模式,在部分情況下會使用 Log 輸出日誌資訊
DialogX.DEBUGMODE = true;
//設置主題樣式
DialogX.globalStyle = MaterialStyle.style();
//設置亮色/暗色(在啟動下一個對話框時生效)
DialogX.globalTheme = DialogX.THEME.LIGHT;
//設置對話框最大寬度(單位為像素)
DialogX.dialogMaxWidth = 1920;
//設置 InputDialog 自動彈出鍵盤
DialogX.autoShowInputKeyboard = true;
//限制 PopTip 一次只顯示一個實例(關閉後可以同時彈出多個 PopTip)
DialogX.onlyOnePopTip = true;
//設置對話框默認按鈕文本字體樣式
DialogX.buttonTextInfo = (TextInfo);
//設置對話框默認確定按鈕文字樣式
DialogX.okButtonTextInfo = (TextInfo);
//設置對話框默認標題文字樣式
DialogX.titleTextInfo = (TextInfo);
//設置對話框默認內容文字樣式
DialogX.messageTextInfo = (TextInfo);
//設置默認 WaitDialog 和 TipDialog 文字樣式
DialogX.tipTextInfo = (TextInfo);
//設置默認輸入框文字樣式
DialogX.inputInfo = (InputInfo);
//設置默認底部選單、對話框的標題文字樣式
DialogX.menuTitleInfo = (TextInfo);
//設置默認底部選單文本樣式
DialogX.menuTextInfo = (TextInfo);
//設置預設對話框背景顏色(值為ColorInt,為-1不生效)
DialogX.backgroundColor = Color.WHITE;
//設置預設對話框預設是否可以點擊外圍遮罩區域或返回鍵關閉,此開關不影響提示框(TipDialog)以及等待框(TipDialog)
DialogX.cancelable = true;
//設置默認提示框及等待框(WaitDialog、TipDialog)預設是否可以關閉
DialogX.cancelableTipDialog = false;
//設置默認取消按鈕文本文字,影響 BottomDialog
DialogX.cancelButtonText = (CharSequence);
//設置默認 PopTip 文本樣式
DialogX.popTextInfo = (TextInfo);
//設置全局 Dialog 生命週期監聽器
DialogX.dialogLifeCycleListener = (DialogLifecycleCallback);
//設置 TipDialog 和 WaitDialog 明暗風格,不設置則默認根據 globalTheme 定義
DialogX.tipTheme = (THEME);
//默認 TipDialog 和 WaitDialog 背景顏色(值為 ColorInt,為-1不生效)
DialogX.tipBackgroundColor = (ColorInt)
/**
* 重寫 TipDialog 和 WaitDialog 進度動畫顏色,
* 注意此屬性為覆蓋性質,即設置此值將替換提示框原本的進度動畫的顏色,包括亮暗色切換的顏色變化也將被替代
* (值為 ColorInt,為-1不生效)
*/
DialogX.tipProgressColor = (ColorInt)
/**
* 設置 BottomDialog 導航欄背景顏色
*/
DialogX.bottomDialogNavbarColor = Color.TRANSPARENT;
//是否自動在主執行緒執行
DialogX.autoRunOnUIThread = true;
//使用振動回饋(影響 WaitDialog、TipDialog)
DialogX.useHaptic = true;
//開啟沉浸式適配
DialogX.enableImmersiveMode = true;
//忽略左右兩側的非安全區(以處理對於部分 activity 在存在瀏海屏的設備上橫屏顯示時,對話框左側出現邊距的問題)
DialogX.ignoreUnsafeInsetsHorizontal = false;
// 默認消息對話框標題文本
DialogX.defaultMessageDialogTitleText = (CharSequence);
// 等待提示框默認文本
DialogX.defaultWaitDialogWaitingText = (CharSequence);
// 成功提示框默認文本
DialogX.defaultTipDialogSuccessText = (CharSequence);
// 錯誤提示框默認文本
DialogX.defaultTipDialogErrorText = (CharSequence);
// 警告提示框默認文本
DialogX.defaultTipDialogWarningText = (CharSequence);
主題樣式(DialogX.globalStyle)默認只自帶 Material.style() 一種,你也可以引入其他主題,DialogX 採用模組化設計,因此你需要額外引入主題包才可以使用。
亮暗色設置支持你指定 DialogX 顯示為亮色效果還是暗色效果,值的含義如下:
屬性 | 解釋 |
---|---|
LIGHT | 🌕強制亮色模式 |
DARK | 🌑強制暗色模式 |
AUTO | 🌗自動判斷,根據設備亮暗色自動改變 |
請注意,當使用 AUTO 時,且對話框已經啟動的情況下,若用戶切換了系統主題,那麼對話框可能發生重啟現象(閃爍),但這不會遺失對話框的內容和數據,例如用戶在 InputDialog 輸入對話框中輸入了一串文本,在對話框重啟後,這段文本依然會顯示在輸入框裡,若你設置了對話框自訂了布局,這些布局的狀態也不會變化,但對話框的生命週期監聽器可能重設,也就意味著你可能會額外收到一次 onDismiss 和 onShow 事件的觸發。
TextInfo 用於儲存基礎文本樣式設置,其包含一系列屬性和響應的 get/set 方法,例如方法解釋如下:
屬性 | 解釋 | 預設值 |
---|---|---|
fontSize | 字號大小,值為-1時使用默認樣式,單位:dp | -1 |
gravity | 對齊方式,值為-1時使用默認樣式,取值可使用Gravity.CENTER 等對齊方式 |
-1 |
fontColor | 文字顏色,值為1時使用默認樣式,取值可以用Color.rgb(r,g,b)等方式獲取 | 1 |
bold | 是否粗體 | false |
InputInfo 用於提供輸入內容的自訂設置,其包含一系列屬性和響應的 get/set 方法,例如方法解釋如下:
屬性 | 解釋 | 預設值 |
---|---|---|
MAX_LENGTH | 最大長度,-1不生效 | -1 |
inputType | 自訂輸入類型,類型詳見 android.text.InputType | |
textInfo | 默認字體樣式 | (TextInfo) |
multipleLines | 是否支持多行 | false |
selectAllText | 默認選中所有文字(便於修改) | false |
-keep class com.kongzue.dialogx.** { *; }
-dontwarn com.kongzue.dialogx.**
# 額外的,建議將 android.view 也列入 keep 範圍:
-keep class android.view.** { *; }
# 若啟用模糊效果,請增加如下配置:
-dontwarn androidx.renderscript.**
-keep public class androidx.renderscript.** { *; }
DialogX 依賴部分其他組件實現特定的功能,請按照以下清單檢查你的 app 擁有並符合依賴條件:
- androidx.appcompat 組件 1.2.0 版本或以上版本:
implementation 'androidx.appcompat:appcompat:1.2.0'
- iOS 主題的即時模糊效果依賴 RenderScript 實現,若要使用模糊效果請查看 模糊效果 章節進行配置。
- Material You 主題需要 material 組件 1.3.0 版本或以上版本:
implementation 'com.google.android.material:material:1.3.0'
如果你遇到了一些問題,或沒有達到預期效果,請按照如下步驟嘗試:
-
在 DialogX 倉庫主頁面 下載 Demo程序 並嘗試運行,如果在您的設備上表現不正常,請 提交 Issues,並說明設備型號及系統版本,如果在設備上表現正常,那麼按照第 2 條排查。
-
查閱 常見問題 看您的問題是否已經有解釋,並按照建議進行配置。
-
若上述方法都無法幫您解決問題,請 提交 Issues,說明問題原因及重現問題的方法,或者你可以加入群與我直接進行討論:590498789
DialogX 還提供了很多 API 來豐富用法與擴展性,要了解這些 API,請前往 《高階擴展用法》 查看