Dialog封装大全NiceDialog一个强大的轮子

来源:互联网 发布:淘宝电脑店 编辑:程序博客网 时间:2024/05/23 02:25

今天无意间发现了这个东东,是一个基于DialogFragment的扩展,封装的比较好,至于DialogFragment的基本使用,可以参考我之前的一篇文章DialogFragment的使用及利用自定义interface点击事件并解决旋转屏幕点击事件失效问题。下来看看这个

NiceDialog封装的效果如何:
这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述

下面来说说如何使用:

Step 1. 添加JitPack仓库 在当前项目等根目录下的 build.gradle 文件中添加如下内容:

allprojects {
repositories {

maven { url “https://jitpack.io” }
}
}

Step 2. 添加项目依赖

dependencies {
compile ‘com.github.Othershe:NiceDialog:1.1.1’
}

Step 3. 配置、展示dialog

NiceDialog.init()       .setLayoutId(R.layout.dialog)     //设置dialog布局文件       .setConvertListener(new ViewConvertListener() {     //进行相关View操作的回调              @Override              public void convertView(ViewHolder holder, final BaseNiceDialog dialog) {                  holder.setOnClickListener(R.id.cancel, new View.OnClickListener() {                       @Override                       public void onClick(View v) {                          dialog.dismiss();                           }                            });                            //如果还有其他监听可以继续添加              }          })      .setDimAmount(0.3f)     //调节灰色背景透明度[0-1],默认0.5f      .setShowBottom(true)     //是否在底部显示dialog,默认flase      .setMargin()     //dialog左右两边到屏幕边缘的距离(单位:dp),默认0dp      .setWidth()     //dialog宽度(单位:dp),默认为屏幕宽度      .setHeight()     //dialog高度(单位:dp),默认为WRAP_CONTENT      .setOutCancel(false)     //点击dialog外是否可取消,默认true   .setAnimStyle(R.style.EnterExitAnimation)//设置dialog进入、退出的动画style(底部显示的dialog有默认动画)    .show(getSupportFragmentManager());     //显示dialog

注意: setMargin()和setWidth()选择一个即可

更多用法:

1、创建一个继承BaseNiceDialog的类,如果需要传参可仿照如下方式,也是就是常用的Fragment传参方式

 public static class ConfirmDialog extends BaseNiceDialog {        private String type;        public static ConfirmDialog newInstance(String type) {            Bundle bundle = new Bundle();            bundle.putString("type", type);            ConfirmDialog dialog = new ConfirmDialog();            dialog.setArguments(bundle);            return dialog;        }        @Override        public void onCreate(@Nullable Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            Bundle bundle = getArguments();            if (bundle == null) {                return;            }            type = bundle.getString("type");        }        @Override        public int intLayoutId() {            return R.layout.confirm_layout;        }        @Override        public void convertView(ViewHolder holder, final BaseNiceDialog dialog) {            if ("1".equals(type)) {                holder.setText(R.id.title, "提示");                holder.setText(R.id.message, "您已支付成功!");            } else if ("2".equals(type)) {                holder.setText(R.id.title, "警告");                holder.setText(R.id.message, "您的账号已被冻结!");            }            holder.setOnClickListener(R.id.cancel, new View.OnClickListener() {                @Override                public void onClick(View v) {                    dialog.dismiss();                }            });            holder.setOnClickListener(R.id.ok, new View.OnClickListener() {                @Override                public void onClick(View v) {                    dialog.dismiss();                }            });        }    }

2、展示dialog

  public void showDialog5(View view) {        ConfirmDialog.newInstance("1")                .setMargin(60)                .setOutCancel(false)                .show(getSupportFragmentManager());    }    public void showDialog6(View view) {        ConfirmDialog.newInstance("2")                .setMargin(60)                .setOutCancel(false)                .show(getSupportFragmentManager());    }

这里写图片描述这里写图片描述

本文参考:https://github.com/Othershe/NiceDialog

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 泰迪睡觉换地方怎么办 猫一定要和人睡怎么办 狗喜欢跳到床上怎么办 幼猫晚上不睡觉怎么办 宝宝不在床上睡觉怎么办呢 瑜伽球表面粘了怎么办 鞋子洗了很臭怎么办 在社区开瑜伽馆怎么办 腿被开水烫伤了怎么办 狗狗的腿脱臼了怎么办 手火辣辣的烧疼怎么办 网贷收到告知函怎么办 收到捷信催收律师函怎么办 快钱贷款不还怎么办 快易花逾期3个月怎么办 欠微粒贷一万多没还找上门了怎么办 装修公司骚扰电话太多了怎么办 总有大便的感觉怎么办 黎明杀机无网络连接怎么办 监控视频电脑播放不了怎么办 绝地手游击倒了怎么办? 绝地求生全军出击倒地后怎么办 黑魂3杀了npc怎么办 菜刀背容易割手怎么办 商铺厨房太热怎么办 农村自建房厨房卫生间怎么办 宾利车门不会开怎么办 两岁的宝宝好动怎么办 被别人坏了名声怎么办 在单位混臭了怎么办 在公司名声臭了怎么办 怀孕三个月吐的厉害怎么办 孕38周轻微贫血怎么办 孕38周中度贫血怎么办 孕38周贫血严重怎么办 孕38周有点贫血怎么办 脚被热水烫红了怎么办 学员练车撞死人怎么办 三胎意外来了该怎么办 因为飞机延误耽误行程怎么办 伤了朋友的心怎么办