uni-app怎么做类似于微博的新消息气泡 uni-app角标动画效果实现【代码】

张开发
2026/4/20 0:37:15 15 分钟阅读

分享文章

uni-app怎么做类似于微博的新消息气泡 uni-app角标动画效果实现【代码】
uni.setTabBarBadge不生效主因是调用时机不当需onShow后延迟执行、平台限制微信小程序仅支持tabBar页面、custom:true时无效、参数错误text必须为非空字符串及真机权限/配置缺失如iOS未开启badge权限或manifest未勾选。uni.setTabBarBadge 不生效先看调用时机和平台限制很多开发者一上来就写 uni.setTabBarBadge({ index: 2, text: 9 })结果在真机上没反应——不是代码错是时机不对。原生 TABBAR 的角标渲染依赖底层平台微信、支付宝、App的 UI 初始化完成而 onLoad 或 onShow 早期执行时TABBAR 可能还没挂载好。? 推荐做法在 onShow 里加一层 setTimeout 延迟 100ms 再调用或监听 uni.getSystemInfo 回调后再设角标?? 注意text 必须是字符串传数字如 9 会静默失败iOS 尤其敏感? 微信小程序中若 TABBAR 是通过 custom: true 自定义的则 uni.setTabBarBadge 完全无效必须自己画红点? 安卓 App 端需额外处理厂商适配华为、小米等setTabBarBadge 仅控制底部导航栏不控制桌面图标角标自定义新消息气泡如微博右上角小红点怎么画才不穿帮原生 TABBAR 角标位置、大小、圆角、偏移量各平台不一致iOS 上常右偏 2px、安卓上又可能遮住图标边缘。要真正“像微博”得放弃 uni.setTabBarBadge改用绝对定位 uni-badge 或纯 view 模拟。? 推荐结构在 tabbar 对应 icon 的父容器内用 position: absolute; top: 4px; right: 6px; 放一个 view classbadge9/view?? 关键细节给 badge 加 transform: translate(50%, -50%); 居中对齐避免不同字体渲染导致偏移? 别用 uni-badge 的 isDot 模式直接套在 tabbar 上——它无法响应 tabBar 的 active 状态变化切换 tab 时容易残留? 性能提醒气泡显示逻辑建议绑定到 Vuex/Pinia 的未读数状态而非每次 onShow 都查一遍接口加个入场动画别碰 CSS 动画用 animation API 更稳想让气泡“弹出来”第一反应是加 transition: all .2s但实际在多端运行时H5 上正常小程序里常卡顿或不触发。原因是 CSS 动画受小程序 WebView 渲染机制限制且无法精确控制起始态。 唱鸭 音乐创作全流程的AI自动作曲工具集 AI 辅助作词、AI 自动作曲、编曲、混音于一体

更多文章