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
阅读全文
0 0
- Dialog封装大全NiceDialog一个强大的轮子
- iOS开发造轮子 | 优雅的封装一个倒计时button
- 封装dialog大全
- [easyui]封装一个dialog
- Android中强大的Dialog
- Dialog 的简易封装
- 造了一个轮子:注册表键编辑封装->registry类
- Android 你可能需要的NiceDialog
- 强大的SpannableStringBuilder并封装
- 强大的封装标签封装类
- 一个“Spring轮子”引发的血案(1)
- 一个“Spring轮子”引发的“血案”(2)
- 一个“Sprng轮子”引发的“血案”(3)
- 一个“Spring轮子”引发的“血案”(4)
- 一个“Spring轮子”引发的“血案”(5)
- 一个“Spring轮子”引发的“血案”(6)
- 一个“Spring轮子”引发的“血案”(6)
- 一个“Spring轮子”引发的“血案”(6)
- XSI IPC(消息队列、信号量、共享内存)
- MTK_GPIO口的定制
- oracle 创建空间索引
- 微服务之构建容错&自动降级的系统
- 在Eclipse中测试MySQL-JDBC(1)入门【数据库查询】
- Dialog封装大全NiceDialog一个强大的轮子
- random forest 随机森林(高亮!用于分类) matlab实现
- html5之获取url参数和右键菜单
- win10如何在此处打开命令行
- OpenCV简单操作-RGB转gray
- 基于vue-cli的vue项目之路由6--重定向1-----路径无参重定向
- Hadoop之Hue3.9.0详细安装文档
- struct stat结构体:获取指定路径的文件或者文件夹的信息
- 从头开始学算法:考研机试题练习(C/C++)–数学问题