Android开发truck快速开发框架Dialog(五)
2018-01-23 15:46
204 查看
简介
truck项目的github地址:https://github.com/hookYuan/TruckDialog是大家在开发中经常遇到的问题,特别如果是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
相关文章推荐
- Android开发truck快速开发框架 album(十)
- Android开发truck快速开发框架 Shape(八)
- Android开发truck快速开发框架OKHttp(七)
- Android开发truck快速开发框架 常用工具集合(九)
- Android开发truck快速开发框架使用说明(一)
- Android开发truck快速开发框架TitleBar(六)
- Android开发truck快速开发框架Adapter(四)
- Android开发truck快速开发框架MVP实现(二)
- Android开发truck快速开发框架Activity、Fragment(三)
- 分享:Afinal 0.3.5 发布,Android快速开发框架
- 使用android快速开发框架afinal的FinalDb操作android数据库
- Android快速开发框架-------afinal
- Android的快速开发框架 afinal
- 使用android快速开发框架afinal 开发android应用程序
- Android的快速开发框架 afinal
- Android快速开发框架——Afinal 0.5 发布!
- Android 快速开发框架AFinal
- Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)
- Android的快速开发框架 afinal
- Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)