-
Notifications
You must be signed in to change notification settings - Fork 217
Home
🌐 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,请前往 《高阶扩展用法》 查看