Android开发truck快速开发框架Dialog(五)

简介

truck项目的github地址: https://github.com/hookYuan/Truck
Dialog是大家在开发中经常遇到的问题,特别如果是Android和ios两端同时开发,如果变态的产品经理需要两端弹窗一直时,在Android上实现各种风格Dialog也包含了很多的重复性的代码。这里我主要从两个方向上来讲解Dialog的使用:
  • 带你认识不一样的系统Dialog
  • 自定义Dialog

示例

谈到系统Dialog,大家首先想到的是Dialog、AlertDialog、ProgressDialog等等,他们为什么分这么多,每次使用的时候都不能第一时间想起他们的用法。而且传统的Dialog,都有一个问题就是Dialog的弹窗方式在屏幕的中间,而熟悉ios的都知道,ios的弹窗则是从底部弹出。这样修改系统Dialog弹出方向的问题如果每次都要处理这样就会让问题变得复杂。我写了一个DialogHelper把Android中系统提供的Dialog的各种形式都做一个简单的封装。都可以通过DialogHelper调用。而且通过更改设置配置参数,还可以在控制Dialog的弹出方向、背景颜色、弹出时间、弹出位置等。DialogHelper支持弹窗文字、列表弹窗、单选弹窗、多选弹窗、进度条弹窗、等待中弹窗、自定义弹窗、时间弹窗、日期弹窗,基本用法如下:
  final String[] listData = {"长春", "重庆", "北京", "上海", "成都", "开封", "广东",
                                "长春", "重庆", "北京", "上海", "成都", "开封"};
                        new DialogHelper(mContext).alertList("城市", listData, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                ToastUtil.showShort(mContext, "您选择了" + listData[i]);
                            }
                        });
 new DialogHelper(mContext).alertTime(new TimePickerDialog.OnTimeSetListener() {
                            @Override
                            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                                ToastUtil.showShort(mContext, i + "--" + i1);
                            }
                        });
想查看更多的弹窗示例请查看truck框架中的DialogActivity部分。DilogHelper的设置方式如下:
  diaLogParams = new DialogHelperParams.Builder()
                .matchWidth(true)
                .build();
具体配置可在DialogHelperParams中配置。
除了提供系统的Dialog工具集合外,我这里还提供了一个自定义的RxDialog,RxDialog的好处是可以自定义弹出、隐藏动画。支持指定View显示、指定位置显示、自定义为背景等。RxDialog具体使用方法如下:
  new RxDialog(mContext,R.layout.view_dialog_popup)
                                .setAnimation(new RxScaleAnimation())
                                .setViewTop(rtv_demo_target)
                                .show();
RxDialog支持高度自定义,更多RxDialog的示例参考truck项目具体用法。
快速实现
Dialog的快速实现,如果项目对弹窗的样式、动画需求不是很高。采用DialogHelper即可,因为只需要调用一个方法就可以实现常见样式的弹窗。如果项目对Dialog的样式和动画需求比较高,则可以采用RxDialog实现,RxDialog可以自定义界面内容,自定义弹窗位置、自定义弹窗动画等。对于样式要求比较高的弹窗可以先创建弹窗模板、或者弹窗工具类,然后在每次调用时修改弹窗内容。
最后附上truck快速开发交流qq群:698442320
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值