Android 自定义的链式对话框


ChainedDialogLibrary
链式对话框库,支持自定义动画,本库共集成提示对话框(PromptDialog),文本对话框(TextDialog),item对话框(ItemDialog),grid对话框(GridDialog),加载对话框(LoadingDialog).高度自定义化,内置的样式不满意,可以*修改,
GitHub地址:https://github.com/chyhongye/ChainedDialogLibrary

使用方法

在对应Module的gradle文件中添加以下依赖

dependencies {
    ...
    implementation 'com.chy.chydialoglib:chydialoglib:1.1.1'
    ...
}

所有对话框的通用方法

注意:不管使用哪种对话框,要专用方法和通用方法混用的,都需要先使用专用方法,否则无法正常混用

方法 作用 参数/用法 默认值
setShowOnBottom(boolean showBottom) 设置是否在屏幕底部显示对话框 true在屏幕底部显示,false反之 false
setDialogSize(int width, int height) 设置对话框的宽度和高度 均为int型的dp值 0
setBothSidesMargin(int margin) 设置对话框的左右边距 int型的dp值 0
setOutCancel(boolean outCancel) 设置是否点击对话框外部可以隐藏对话框 true点击外部隐藏对话框,false反之 true
show(FragmentManager manager) 显示对话框 FragmentManager -
setDialogAnim(DialogAnim dialogAnim) 设置对话框进出场动画 ANIM_ALPHA,
ANIM_SCALE,
ANIM_ROTATE,
ANIM_LEFT_TO_LEFT,
ANIM_LEFT_TO_TOP,
ANIM_LEFT_TO_RIGHT,
ANIM_LEFT_TO_BOTTOM,
ANIM_RIGHT_TO_RIGHT,
ANIM_RIGHT_TO_BOTTOM,
ANIM_RIGHT_TO_LEFT,
ANIM_RIGHT_TO_TOP,
ANIM_TOP_TO_TOP,
ANIM_TOP_TO_RIGHT,
ANIM_TOP_TO_BOTTOM,
ANIM_TOP_TO_LEFT,
ANIM_BOTTOM_TO_BOTTOM,
ANIM_BOTTOM_TO_LEFT,
ANIM_BOTTOM_TO_TOP,
ANIM_BOTTOM_TO_RIGHT
ANIM_SCALE
setCustomizeAnim(@StyleRes int animStyle) 设置自定义动画的方法 R.style.xxx
xxx为你定义在styles文件中的“android:windowEnterAnimation”
和“android:windowExitAnimation”动画
R.style.anim_scale

提示对话框

预览图

Android 自定义的链式对话框

方法使用

方法 作用 参数/用法 默认值
setButtonText(String btnText) 设置按钮文字 字符串 -
setButtonTextColor(@ColorInt int btnTextColor) 设置按钮文字颜色 Color值 -
setButtonTextFontSize(float btnTextSize) 设置按钮文字大小 浮点值 15sp
setContentText(String contentText) 设置内容文字 字符串 -
setContentTextColor(@ColorInt int contentTextColor) 设置内容文字颜色 字符串 #dadada
setContentTextFontSize(float contentTextSize) 设置内容文字大小 浮点值 -
setBackgroundColor(@ColorInt int backgroundColor) 设置对话框背景颜色 Color值 -
setBackground(Drawable backgroundDrawable) 设置对话框背景 Drawable值 -
setBackgroundRes(@DrawableRes int backgroundDrawableResource) 设置对话框背景图 Resource中的id值 -
setDividingColor(@ColorInt int dividingColor) 设置水平分割线的颜色 Color值 #6b6b6b
setDividingShow(boolean dividingShow) 设置是否显示水平分割线 true为显示,false反之 true
setOnDialogClickListener(OnDialogClickListener listener) 设置按钮的监听器 监听OnDialogClickListener
返回onDialogClick(View view, BaseDialog dialog)
-

简单用法

PromptDialog.newInstance()
        .setButtonText("好的")
        .setButtonTextColor(Color.BLUE)
        .setContentText("测试通知")
        .setOnDialogClickListener(new OnDialogClickListener() {
            @Override
            public void onDialogClick(View view, BaseDialog dialog) {
                dialog.dismiss();
            }
        })
        .show(getSupportFragmentManager());

文本对话框

预览图

Android 自定义的链式对话框

方法使用

方法 作用 参数/用法 默认值
setDialogType(DIALOG_TYPE dialog_type) 设置对话框类型 NONE,
ERROR,
INFORMATION,
RIGHT,
WARNING
NONE
setCustomIcon(@DrawableRes int customIcon) 设置自定义的icon Resource中的id值 -
setTitleText(String titleText) 设置对话框的标题文字 字符串 -
setTitleTextColor(@ColorInt int titleTextColor) 设置对话框标题文字的颜色 Color值 -
setTitleTextSize(float titleTextSize) 设置对话框标题文字大小 浮点值 -
setContentText(String contentText) 设置对话框内容文字 字符串 -
setContentTextColor(@ColorInt int contentTextColor) 设置对话框内容文字的颜色 Color值 #dadada
setContentTextSize(float contentTextSize) 设置对话框内容文字大小 浮点值 -
setContentTextGravity(int contentGravity) 设置对话框内容文字的对齐方式 Gravity值 Gravity.CENTER
setBackgroundColor(@ColorInt int backgroundColor) 设置对话框背景颜色 Color值 -
setBackground(Drawable backgroundDrawable) 设置对话框背景 drawable型的背景图片 -
setBackgroundRes(@DrawableRes int backgroundDrawableResource) 设置对话框背景图 Resource中的id值 -
setCancelButtonText(String cancelText) 设置取消按钮文字 字符串 取消
setCancelButtonTextColor(@ColorInt int cancelButtonTextColor) 设置取消按钮文字颜色 Color值 Color.RED
setCancelButtonTextSize(float cancelButtonTextSize) 设置取消按钮文字大小 浮点值 15sp
setCancelButtonShow(boolean cancelButtonShow) 设置是否显示取消按钮 true为显示,false反之 true
setConfirmButtonText(String confirmButtonText) 设置确认按钮文字 字符串 好的
setConfirmButtonTextColor(@ColorInt int confirmButtonTextColor) 设置确认按钮文字颜色 Color值 Color.BLUE
setConfirmButtonTextSize(float confirmButtonTextSize) 设置确认按钮文字大小 浮点值 15sp
setConfirmButtonShow(boolean confirmShow) 设置是否显示确认按钮 true为显示,false反之 true
setHDividingShow(boolean hDividingShow) 设置是否显示水平分割线 true为显示,false反之 true
setHDividingColor(@ColorInt int hDividingColor) 设置水平分割线颜色 Color值 #6b6b6b
setVDividingShow(boolean vDividingShow) 设置是否显示垂直分割线 true为显示,false反之 true
setVDividingColor(@ColorInt int vDividingColor) 设置垂直分割线颜色 Color值 #6b6b6b
setOnCancelClickListener(OnDialogClickListener cancelClickListener) 设置取消按钮的点击事件 监听OnDialogClickListener
返回onDialogClick(View view, BaseDialog dialog)
-
setOnConfirmClickListener(OnDialogClickListener confirmClickListener) 设置确认按钮的点击事件 监听OnDialogClickListener
返回onDialogClick(View view, BaseDialog dialog)
-

简单用法

TextDialog.newInstance()
        .setDialogType(TextDialog.DIALOG_TYPE.INFORMATION)
        .setTitleText("通知信息")
        .setContentText("Bootstrap 是一套用于 HTML、CSS 和 JS 开发的开源工具集。利用我们提供的 Sass 变量和大量 mixin、响应式栅格系统、可扩展的预制组件、基于 jQuery 的强大的插件系统,能够快速为你的想法开发出原型或者构建整个 app 。")
        .setContentTextGravity(Gravity.LEFT)
        .setOnCancelClickListener(new OnDialogClickListener() {
            @Override
            public void onDialogClick(View view, BaseDialog dialog) {
                toast("点击了取消按钮");
                dialog.dismiss();
            }
        })
        .setOnConfirmClickListener(new OnDialogClickListener() {
            @Override
            public void onDialogClick(View view, BaseDialog dialog) {
                toast("点击了确定按钮");
                dialog.dismiss();
            }
        })
        .show(getSupportFragmentManager());

条目对话框

预览图

Android 自定义的链式对话框

方法使用

方法 作用 参数/用法 默认值
setMenuDatas(String[] stringDatas) 设置菜单的数据源 字符数组 -
setMenuDatas(ArrayList listDatas) 设置菜单的数据源 数据集 -
setMenuTextColor(@ColorInt int menusTextColor) 设置菜单文字颜色 Color值 #dadada
setMenuTextFontSize(float menusTextFontSize) 设置菜单文字大小 浮点值 -
setCancelButtonText(String cancelButtonText) 设置取消按钮文字 字符串 取消
setCancelButtonTextColor(@ColorInt int cancelButtonTextColor) 设置取消按钮文字颜色 Color值 Color.RED
setCancelButtonTextFontSize(float cancelButtonTextFontSize) 设置取消按钮文字大小 浮点值 15sp
setMenuBackgroundColor(@ColorInt int menuBackgroundColor) 设置菜单区的背景颜色 Color值 -
setMenuBackground(Drawable menuBackgroundDrawable) 设置菜单区的背景 drawable型的背景图片 -
setMenuBackgroundRes(@DrawableRes int menuBackgroundDrawableResource) 设置菜单区的背景图 Resource中的id值 -
setCancelButtonBackgroundColor(@ColorInt int cancelButtonBackgroundColor) 设置取消按钮的背景颜色 Color值 -
setCancelButtonBackground(Drawable cancelButtonBackgroundDrawable) 设置取消按钮的背景 drawable型的背景图片 -
setCancelButtonBackgroundRes(@DrawableRes int cancelButtonBackgroundDrawableResource) 设置取消按钮的背景图 Resource中的id值 -
setOnMenuItemClickListener(OnDialogItemClickListener itemClickListener) 设置item的点击事件 监听OnDialogItemClickListener
返回onDialogItemClick(View view, int position, BaseDialog dialog)
-
setOnMenuItemLongClickListener(OnDialogItemLongClickListener itemLongClickListener) 设置item的长按事件 监听OnDialogItemLongClickListener
返回onDialogItemLongClick(View view, int position, BaseDialog dialog)
-

简单用法

ItemDialog.newInstance()
        .setMenuDatas(new String[]{"菜单1", "菜单2", "菜单3", "菜单4", "菜单5", "菜单6", "菜单7", "菜单8", "菜单9", "菜单10"})
        .setOnMenuItemClickListener(new OnDialogItemClickListener() {
            @Override
            public void onDialogItemClick(View view, int position, BaseDialog dialog) {
                switch (position) {
                    case -1:
                        toast("点击了取消按钮");
                        break;
                    default:
                        toast("点击了菜单" + (position + 1));
                        break;
                }
                dialog.dismiss();

            }
        })
        .setOnMenuItemLongClickListener(new OnDialogItemLongClickListener() {
            @Override
            public void onDialogItemLongClick(View view, int position, BaseDialog dialog) {
                switch (position) {
                    case -1:
                        toast("长按了取消按钮");
                        break;
                    default:
                        toast("长按了菜单" + (position + 1));
                        break;
                }
            }
        })
        .setShowOnBottom(true)
        .setDialogAnim(DialogAnim.ANIM_BOTTOM_TO_BOTTOM)
        .setBothSidesMargin(10)
        .show(getSupportFragmentManager());

网格对话框

预览图

Android 自定义的链式对话框

方法使用

方法 作用 参数/用法 默认值
setMenuDatas(List menuDatas) 设置数据源 数据集 -
setMenuDatas(int[] icons, String[] texts) 设置数据源 分离数组 -
setMenuTextColor(@ColorInt int menusTextColor) 设置菜单文字颜色 Color值 #6b6b6b
setMenuTextFontSize(float menusTextFontSize) 设置菜单文字大小 浮点值 -
setIndicatorShow(boolean showIndication) 设置是否显示指示器 true为显示,false反之 true
setIndicatorNotSelectStatus(@DrawableRes int indicatorNotSelect) 设置未选择状态的指示器 Resource中的id值 -
setIndicatorSelectStatus(@DrawableRes int indicatorSelect) 设置已选择状态的指示器 Resource中的id值 -
setShowGridCountOnPage(int showGridCount) 设置每页显示的菜单数 整数,上限为16,建议设置为4的倍数 8
setBackgroundColor(@ColorInt int backgroundColor) 设置背景颜色 Color值 #eaeaea
setBackground(Drawable backgroundDrawable) 设置对话框背景 drawable型的背景图片 -
setBackgroundRes(@DrawableRes int backgroundDrawableResource) 设置对话框背景图 Resource中的id值 -
setOnDialogGridClickListener(OnDialogGridClickListener gridClickListener) 设置grid的点击事件 监听OnDialogGridClickListener
返回onDialogGridClick(View view, int pageTag, int onDataPosition, int onPagePosition, BaseDialog dialog)
pageTag代表在第几页,onDataPosition代表在你数据集中的位置,onPagePosition代表在该页的第几个位置
-
setOnDialogGridLongClickListener(OnDialogGridLongClickListener gridLongClickListener) 设置grid的长按事件 监听OnDialogGridLongClickListener
返回onDialogGridLongClick(View view, int pageTag, int onDataPosition, int onPagePosition, BaseDialog dialog)
pageTag代表在第几页,onDataPosition代表在你数据集中的位置,onPagePosition代表在该页的第几个位置
-

简单用法

final List<GridDialogBean> beans = new ArrayList<>();
GridDialogBean bean;
for (int i = 0; i < 100; i++) {
    bean = new GridDialogBean();
    bean.text = "测试菜单" + i;
    bean.icon = R.mipmap.ic_launcher;
    beans.add(bean);
}
GridDialog.newInstance()
        .setMenuDatas(beans)
        .setOnDialogGridClickListener(new OnDialogGridClickListener() {
            @Override
            public void onDialogGridClick(View view, int pageTag, int onDataPosition, int onPagePosition, BaseDialog dialog) {
                dialog.dismiss();
                toast("点击了第" + pageTag + "页第" + (onPagePosition + 1) + "个菜单:" + beans.get(onDataPosition).text);
            }
        })
        .setOnDialogGridLongClickListener(new OnDialogGridLongClickListener() {
            @Override
            public void onDialogGridLongClick(View view, int pageTag, int onDataPosition, int onPagePosition, BaseDialog dialog) {
                toast("长按了第" + pageTag + "页第" + (onPagePosition + 1) + "个菜单:" + beans.get(onDataPosition).text);
            }
        })
        .setBothSidesMargin(0)
        .setShowOnBottom(true)
        .show(getSupportFragmentManager());

加载对话框

预览图

Android 自定义的链式对话框

方法使用

方法 作用 参数/用法 默认值
setLoadingType(LoadingType type) 设置加载对话框的类型 CYLINDER,
DISC,
STRIPE,
COLUMNAR
LoadingType.CYLINDER
setCustomizeLoadingColor(@DrawableRes int loadingImageID, @ColorInt int backgroundColor) 设置自定义背景和图案的等待对话框 loadingImageID为加载图案在Resource中的id值,backgroundColor为背景颜色 -
setCustomizeLoadingResource(@DrawableRes int loadingImageID, @DrawableRes int backgroundRes) 设置自定义背景和图案的等待对话框 loadingImageID为加载图案在Resource中的id值,backgroundRes背景图片为Resource中的id值 -
setCustomizeLoadingDrawable(@DrawableRes int loadingImageID, Drawable backgroundDrawable) 设置自定义背景和图案的等待对话框 loadingImageID为加载图案在Resource中的id值,backgroundDrawable为drawable型的背景图片 -

简单用法

LoadingDialog.newInstance()
        .show(getSupportFragmentManager());