您的位置:首页 > 移动开发 > Android开发

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

2018-01-23 15:46 204 查看

简介

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: