Android 自定义的链式对话框

1 篇文章 0 订阅
1 篇文章 0 订阅


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

提示对话框

预览图

提示对话框预览

方法使用

方法作用参数/用法默认值
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());

文本对话框

预览图

文本对话框预览

方法使用

方法作用参数/用法默认值
setDialogType(DIALOG_TYPE dialog_type)设置对话框类型NONE,
ERROR,
INFORMATION,
RIGHT,
WARNING
NONE
setCustomIcon(@DrawableRes int customIcon)设置自定义的iconResource中的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());

条目对话框

预览图

条目对话框预览图

方法使用

方法作用参数/用法默认值
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());

网格对话框

预览图

网格对话框

方法使用

方法作用参数/用法默认值
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());

加载对话框

预览图

加载对话框预览图

方法使用

方法作用参数/用法默认值
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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值