ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

NiceDialog实战合集:6款高颜值弹窗(分享/加载/红包/输入/广告/确认)

NiceDialog实战合集:6款高颜值弹窗(分享/加载/红包/输入/广告/确认) NiceDialog实战合集6款高颜值弹窗分享/加载/红包/输入/广告/确认【免费下载链接】NiceDialogA nice dialog, that is based on DialogFragment项目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog在Android开发中弹窗Dialog是每个App都绕不开的交互组件但原生Dialog样式呆板、代码繁琐常常让新手头疼。NiceDialog是一款基于DialogFragment二次封装的开源Android弹窗库只需几行代码就能实现分享、加载、红包、输入、广告、确认等高颜值弹窗堪称Android弹窗开发的终极神器。本篇文章就带大家零基础实战一次性学会6款常用弹窗的快速搭建方法。为什么选择 NiceDialog 打造高颜值弹窗✅基于 DialogFragment 封装天然适配屏幕旋转状态保存无忧不会出现内存泄漏✅链式调用代码极简init()一行开启配置参数一目了然✅动画开箱即用内置上、下、左、右四个方向的进出场动画✅自由定制布局、主题、宽高、边距、灰度背景全部可调三分钟快速上手添加依赖与初始化在项目根目录build.gradle添加 JitPack 仓库然后在模块依赖中加入implementation com.github.SheHuan:NiceDialog:1.2.0接入后一个最简单的弹窗只需这几行代码NiceDialog.init() .setLayoutId(R.layout.dialog) // 设置弹窗布局 .setConvertListener(new ViewConvertListener() { Override public void convertView(ViewHolder holder, BaseNiceDialog dialog) { // 在这里绑定控件、处理点击事件 } }) .show(getSupportFragmentManager());核心入口 NiceDialog.java 提供了setLayoutId、setTheme、setGravity、setWidth、setHeight、setMargin、setDimAmount、setOutCancel、setAnimStyle等全套配置方法全部支持链式调用。第一招底部滑出的分享弹窗分享功能几乎是所有社交类App的标配。NiceDialog 只需设置布局并指定Gravity.BOTTOM即可让分享面板从底部优雅滑出。以 share_layout.xml 为例底部面板可容纳微信、朋友圈、QQ、QQ空间、微博五个分享入口实现代码参考 MainActivity.java 中的showDialog0()NiceDialog.init() .setLayoutId(R.layout.share_layout) .setDimAmount(0.3f) // 半透明遮罩更显质感 .setGravity(Gravity.BOTTOM) // 从底部弹出 .show(getSupportFragmentManager());第二招仿QQ空间的好友设置弹窗昵称、权限、好友设置这类弹窗同样适合底部弹出。通过setGravity(Gravity.BOTTOM)配合setHeight(310)精确控制面板高度即可实现类似 QQ 空间的交互效果NiceDialog.init() .setLayoutId(R.layout.friend_set_layout) .setGravity(Gravity.BOTTOM) .setHeight(310) // 固定弹窗高度 .show(getSupportFragmentManager());第三招自动弹键盘的评论输入弹窗评论、留言类弹窗的关键体验在于自动唤起软键盘。在 commit_layout.xml 中定义了输入框、图标、表情图标和发表评论按钮配合InputMethodManager让输入框获得焦点后自动弹出键盘用户无需手动点击即可直接打字EditText editText holder.getView(R.id.edit_input); editText.post(new Runnable() { Override public void run() { InputMethodManager imm (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, 0); } });第四招红包广告弹窗视觉拉满运营活动中常见的红包/广告弹窗重点在于视觉冲击力。项目内置了一张精致的红包背景图 red_packet_bg.png红色渐变封口设计极具节日氛围配合居中展示和关闭按钮即可快速成型对应布局 ad_layout.xml 实现如下NiceDialog.init() .setLayoutId(R.layout.ad_layout) .setWidth(210) // 固定弹窗宽度 .setOutCancel(false) // 禁止点击外部关闭 .setAnimStyle(R.style.EnterExitAnimation) .show(getSupportFragmentManager());第五招轻量级加载中弹窗网络请求时展示的加载弹窗要小而美。设置setDimAmount(0)去掉遮罩灰度setWidth(100)、setHeight(100)固定为 100dp 的圆角小方块居中显示旋转进度条和加载中...文字轻量不打扰NiceDialog.init() .setLayoutId(R.layout.loading_layout) .setWidth(100) .setHeight(100) .setDimAmount(0) // 无遮罩更清爽 .show(getSupportFragmentManager());第六招可复用传参的确认弹窗支付成功提示、账号冻结警告这类确认弹窗建议继承BaseNiceDialog封装成独立类通过 Fragment 的setArguments方式传参复用。项目示例 MainActivity.java 中的ConfirmDialog就是标准模板ConfirmDialog.newInstance(1) // 传入类型参数 .setMargin(60) // 左右留边距 .setOutCancel(false) .show(getSupportFragmentManager());BaseNiceDialog的源码位于 BaseNiceDialog.java其中封装了宽高、边距、灰度、位置、动画等全部参数还贴心处理了屏幕旋转时的状态保存。弹窗位置与动画位置不同动画自动切换NiceDialog 一个非常聪明的设计是根据setGravity()设置的位置自动匹配对应的进出场动画。设置Gravity.BOTTOM自动使用底部滑入动画设置Gravity.RIGHT自动使用右侧滑入动画无需手动指定。动画资源定义在 nicedialog/src/main/res/anim 目录下包含 bottom、left、right、top 四组 enter/exit 动画当然你也可以通过setAnimStyle()完全自定义。总结一个库搞定全部弹窗场景NiceDialog 将 Android 弹窗开发从复制粘贴调样式解放出来用最简洁的链式 API 覆盖了分享、设置、输入、广告、加载、确认等高频场景。如果你正在寻找一款高颜值、易上手、可定制的 Android 弹窗方案不妨直接 clone 仓库https://gitcode.com/gh_mirrors/ni/NiceDialog动手试一试相信你会爱上这种一行代码一个弹窗的开发体验【免费下载链接】NiceDialogA nice dialog, that is based on DialogFragment项目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进