尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

GreatSQL非阻塞式DDL与异步删除大表:运维不再胆战心惊

GreatSQL非阻塞式DDL与异步删除大表:运维不再胆战心惊

GreatSQL非阻塞式DDL与异步删除大表:运维不再胆战心惊 【免费下载链接】GreatSQL GreatSQL是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为MySQL或Percona Server for M…

📅 2026/10/6 14:37:26
基于LangGraph构建AI日程管理智能体:从架构到实践

基于LangGraph构建AI日程管理智能体:从架构到实践

1. 项目概述:当AI成为你的专属日程管家“AI Calendar Management Agent”,这个项目标题听起来可能有点技术化,但它的核心目标非常直接:打造一个能真正理解你、主动帮你管理日程的智能助手。它不是一个简单的日历同步工具&#xff…

📅 2026/9/8 19:46:05
Navicat 试用期无限重置保姆级指南:macOS 三种方式免费续命完整版

Navicat 试用期无限重置保姆级指南:macOS 三种方式免费续命完整版

Navicat 试用期无限重置保姆级指南:macOS 三种方式免费续命完整版 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac …

📅 2026/10/2 13:03:50
MORE NEWS

更多资讯

📰

开发MCP Server和MCP Client(SSE方式):用TaoToken统一Key跑通Java Spring AI双端联调

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

windows+wsl+OpenClaw 安装指南(七):系统安全设置与 TaoToken 通道配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

今天制作的app短视频广告

📰

Spring AI Alibaba 1.0 GA 正式发布:Java 智能体开发进入新时代,TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

盘点 8 个「最吊」的 Agent 开源项目!从 GitHub 到 TaoToken 的落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

open_cursors、sessions、processes 三兄弟到底谁在吃内存?TaoToken 实测排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬