当前位置: 首页 > news >正文

uni-app学习笔记二十七--设置底部菜单TabBar的样式

官方文档地址:uni.setTabBarItem(OBJECT) | uni-app官网

uni.setTabBarItem(OBJECT)

动态设置 tabBar 某一项的内容,通常写在项目的App.vue的onLaunch方法中,用于项目启动时立即执行

重要参数:

indexnumbertabBar 的哪一项,从左边算起
textStringtab 上的按钮文字

index索引值从0开始,从左到右逐项加1,指向哪个菜单

onLaunch: function() {uni.setTabBarItem({index:1,text:"自定义菜单",})

效果展示: 

uni.hideTabBar(OBJECT)

隐藏 tabBar,用于隐藏底部菜单栏。

uni.setTabBarBadge(OBJECT)

为 tabBar 某一项的右上角添加文本。

OBJECT参数说明:

参数类型必填说明
indexNumbertabBar的哪一项,从左边算起
textString显示的文本,不超过 3 个半角字符

uni.removeTabBarBadge(OBJECT)

移除 tabBar 某一项右上角的文本。

uni.showTabBarRedDot(OBJECT)

显示 tabBar 某一项的右上角的红点。

uni.hideTabBarRedDot(OBJECT)

隐藏 tabBar 某一项的右上角的红点。

下面通过代码实现上面TabBar的效果。要求实现:

1.项目启动页面加载时即出现小红点和右上角角标;

2.当用户点击跳转到相应菜单页面时,小红点和右上角角标消失。

 为了防止TabBar 页面可能还未挂载,直接调用 setTabBarBadge 或 showTabBarRedDot 出现下面的错误:

UnhandledPromiseRejection: {"errMsg":"showTabBarRedDot:fail not TabBar UnhandledPromiseRejection: {"errMsg":"setTabBarBadge:fail not TabBar page"}

我们可以使用 nextTick 或 setTimeout 延迟调用

在 App.vue 的 onLaunch 里,用 setTimeout 或 uni.nextTick 确保 TabBar 初始化完成后再调用:

setTimeout(() => {uni.setTabBarBadge({index:2,text:"3"})uni.showTabBarRedDot({index:1})},500)

然后当用户点击跳转到相应页面时执行onShow生命函数时,调用隐藏的方法,让红点和角标消失:

小红点消失使用:

onShow(()=>{uni.hideTabBarRedDot({index:1})})

角标消失使用:

onShow(()=>{uni.removeTabBarBadge({index:2})
})

onPullDownRefresh

在 js 中定义 onPullDownRefresh 处理函数(和onLoad等生命周期函数同级),监听该页面用户下拉刷新事件。

  • 需要在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中开启 enablePullDownRefresh
  • 当处理完数据刷新后,uni.stopPullDownRefresh 可以停止当前页面的下拉刷新。

uni.startPullDownRefresh(OBJECT)

开始下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。

uni.stopPullDownRefresh()

停止当前页面下拉刷新。

相关文章:

  • AWS 公开数据集下载与操作说明
  • iOS 抖音导航栏首页一键分两列功能的实现
  • 【iOS】多线程NSOperation,NSOperationQueue
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
  • 【iOS】 Block再学习
  • Ubuntu20.04中 Redis 的安装和配置
  • Cursor 编辑器, 使用技巧,简单记录一下
  • 【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面
  • 2025年与2030年AI及AI智能体 (Agent) 市场份额分析报告
  • 【GO性能优化】第十五章:性能优化艺术——揭秘Go程序的性能调优技巧
  • CppCon 2015 学习:Live Lock-Free or Deadlock
  • MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点
  • Perplexity AI:重塑你的信息探索之旅
  • 树莓派超全系列教程文档--(57)如何设置 Apache web 服务器
  • VLM引导的矢量草图生成AutoSketch
  • JS手写代码篇---手写ajax
  • 【ROS2】核心概念8——参数设置(Parameters)
  • Java 面向对象进阶之多态:从概念到实践的深度解析
  • ckeditor5的研究 (9):写一个自定义插件,包括自定义的toolbar图标、插入当前时间,并复用 CKEditor5 内置的 UI 组件
  • Unity中的Mathf.Clamp01
  • 无上光东莞网站/太原做网站哪家好
  • 做网站怎么收费/seo学院
  • 网站建设易网宣/站长工具权重查询
  • 1网站建设公司/福州短视频seo公司
  • wordpress 有什么用/济南做seo外包
  • 标书制作员这工作好吗/百度权重优化软件