ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

3分钟集成NiceDialog:基于DialogFragment的Android弹窗库快速上手教程

3分钟集成NiceDialog:基于DialogFragment的Android弹窗库快速上手教程 3分钟集成NiceDialog基于DialogFragment的Android弹窗库快速上手教程【免费下载链接】NiceDialogA nice dialog, that is based on DialogFragment项目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog在 Android 开发中弹窗Dialog几乎是每个应用都绕不开的功能但传统AlertDialog写法繁琐、样式难调还要处理屏幕旋转和生命周期问题。今天要介绍的NiceDialog是一款基于DialogFragment的轻量级Android 弹窗库主打一行代码弹窗只需 3 分钟即可完成集成并跑出第一个弹窗无论新手还是老手都能快速上手。上图是 NiceDialog 示例工程中红包弹窗的效果只需指定一张布局就能做出这种高颜值弹窗。NiceDialog 是什么凭什么好用NiceDialog 在DialogFragment之上做了一层简洁封装核心代码集中在 BaseNiceDialog.java 和 NiceDialog.java 两个文件里设计非常轻巧。它解决了原生弹窗的三大痛点✅写法简单链式调用一行代码完成弹窗创建与展示✅生命周期安全基于 Fragment 实现屏幕旋转自动保存、恢复弹窗状态✅动画随心配内置上下左右进出场动画一行配置即可切换3分钟快速集成 NiceDialog 的完整步骤第一步添加 JitPack 仓库与依赖在项目根目录的build.gradle中配置 JitPack 仓库然后添加依赖即可整个过程无需 clone 源码allprojects { repositories { maven { url https://jitpack.io } } }dependencies { implementation com.github.SheHuan:NiceDialog:1.2.0 }如果你想阅读或修改源码也可以直接 clone 仓库体验完整示例工程git clone https://gitcode.com/gh_mirrors/ni/NiceDialog弹窗库本体位于nicedialog/目录演示代码位于app/目录。第二步用一行代码弹出第一个弹窗依赖同步完成后在 Activity 里写下这段代码即可看到弹窗效果NiceDialog.init() .setLayoutId(R.layout.dialog) // 指定弹窗布局 .setConvertListener((holder, dialog) - { // 在这里给弹窗里的控件绑定事件 }) .show(getSupportFragmentManager()); // 显示弹窗没错核心就三步指定布局 → 绑定控件 → show 展示。更多完整示例可以参考演示工程中的 MainActivity.java里面内置了分享、好友设置、评论、红包、加载提示等 7 种弹窗。第三步常用配置速查表NiceDialog 提供了丰富的链式配置方法这张速查表帮你快速找到想要的配置配置方法作用默认值setGravity()弹窗位置居中 / 底部 / 右侧等居中setMargin()弹窗左右边距dp0setWidth() / setHeight()弹窗宽高dp屏幕宽 / WRAP_CONTENTsetDimAmount()背景遮罩透明度 [0-1]0.5setOutCancel()点击外部是否关闭truesetAnimStyle()进出场动画跟随位置自动匹配 小提示setMargin()和setWidth()二选一使用即可避免配置冲突。进阶玩法如何打造底部弹窗与自定义动画最快的底部弹窗配置方法常见的底部弹出分享面板只需两行配置NiceDialog.init() .setLayoutId(R.layout.share_layout) .setGravity(Gravity.BOTTOM) // 底部弹出 .show(getSupportFragmentManager());设置Gravity.BOTTOM后NiceDialog 会自动匹配底部进出场动画动画资源位于nicedialog/src/main/res/anim/目录无需手动指定。继承 BaseNiceDialog 打造可复用弹窗如果同一弹窗需要在多个页面复用推荐继承BaseNiceDialog并使用原生 Fragment 传参方式传递数据public class ConfirmDialog extends BaseNiceDialog { public static ConfirmDialog newInstance(String type) { Bundle bundle new Bundle(); bundle.putString(type, type); ConfirmDialog dialog new ConfirmDialog(); dialog.setArguments(bundle); return dialog; } // 实现 intLayoutId() 与 convertView() 两个抽象方法即可 }展示时依旧一行搞定ConfirmDialog.newInstance(1).setMargin(60).setOutCancel(false).show(...)。自定义动画的小技巧NiceDialog 默认主题继承自Theme.AppCompat.Light.Dialog可在 styles.xml 中查看默认动画风格。想自定义进出场动画只需写一个 Animation 风格再通过setAnimStyle()传入例如缩放 渐变的组合动画style nameMyAnim parentandroid:Animation item nameandroid:windowEnterAnimationanim/enter/item item nameandroid:windowExitAnimationanim/exit/item /style结语为什么推荐用 NiceDialog 做 Android 弹窗总结下来NiceDialog 作为一款基于 DialogFragment 的 Android 弹窗库把配置繁琐、样式难调的弹窗开发压缩到了极致3 分钟集成、一行代码弹窗、内置动画、生命周期安全。如果你正在寻找一款简单好用的 Android 弹窗解决方案不妨现在就上手试试吧【免费下载链接】NiceDialogA nice dialog, that is based on DialogFragment项目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表