20.自定义tabBar(使用vant中的tabbar)

news2024/11/17 5:20:19

自定义tabBar就是不用官方提供的tabBar了,而是自己搞

目录

1  配置

2  使用vant组件库做TabBar

2.1  引入组件

2.2  使用组件

2.3  自定义图标

2.4  把info与store进行绑定

2.5  tab页面的切换

2.6  改变激活状态下的文本颜色


1  配置

首先你需要在项目根目录中创建名为 custom-tab-bar 的文件夹,然后在其中创建名为 index 的组件

  • custom-tab-bar名称固定
  • index名称固定

之后你需要在app.json节点下,加入custom:true

然后你进入到list包含的页面中,就可以看到自定义tabBar了

这里的内容是与index.wxml一样的

2  使用vant组件库做TabBar

2.1  引入组件

2.2  使用组件

比如我们想用基础用法的这个tabbar,那就把这段代码复制下来

然后将他们搞到 custom-tab-bar/index中

然后就看到了自定义的tabbar了

当你点击第二个tabbar的时候,第二个tabbar就会高亮显示

2.3  自定义图标

自定义图标就要用这个东西

首先搞wxml,我当前的index.wxml是这样的

<!--custom-tab-bar/index.wxml-->
<!-- <van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item icon="home-o">标签</van-tabbar-item>
  <van-tabbar-item icon="search">标签</van-tabbar-item>
  <van-tabbar-item icon="friends-o">标签</van-tabbar-item>
  <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
</van-tabbar> -->

<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item info="3">
    <image
      slot="icon"
      src="{{ icon.index_normal }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    <image
      slot="icon-active"
      src="{{ icon.index_activate }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    主页
  </van-tabbar-item>
  <van-tabbar-item info="3">
    <image
      slot="icon"
      src="{{ icon.logs_normal }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    <image
      slot="icon-active"
      src="{{ icon.log_activate }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    日志
  </van-tabbar-item>
</van-tabbar>

然后搞index.js,我当前的index.js是这样的

// custom-tab-bar/index.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    active:0,
    icon:{
      index_normal:"/src/tabBar_icon/not_activate_home.png",
      index_activate:"/src/tabBar_icon/activate_home.png",
      logs_normal:"/src/tabBar_icon/not_activate_log.png",
      log_activate:"/src/tabBar_icon/activate_log.png",
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onChange(event) {
      this.setData({active:event.detail})
    }
  }
})

src/tabBar_icon是我之前就放好的图像

搞完就有自定义的tabbar了

点击也是有用的

  • 视频中对文字与图标的距离不满意,他进行了调整,我觉得还行就不写了,感兴趣可以看一下P91 15.渲染tabBar上的数字徽标_哔哩哔哩_bilibili

2.4  把info与store进行绑定

我现在像将这里的3搞成一个变量放在store中

你那这个自定义tabBar当组件用就行了,我当前的store中有numA

  • 详细使用store的方式可以看一下这个 18.全局数据共享_Suyuoa的博客-CSDN博客

把变量numA引入到 custom-tab-bar/index.js 中

然后就能在wxml上用了

2.5  tab页面的切换

现在你点这个tabBar是不能页面切换的

我们可以利用onChange事件来搞一下

之前我们使用event.detail拿到了tabBar的索引,现在我们也可以用索引配合wx.switchTab()来切换tab页

这样搞完之后点击指定的tab确实可以切换tab页,但是在激活tab状态会出问题。比如下面我点击的是日志,也切换到日志页面了,但是激活状态在主页上

这个时候我们需要将active这个变量放在store中

然后引入到 custom-tab-bar/index.js 中

注释掉之前的active

然后改变一下onChange的内容

然后就行了

2.6  改变激活状态下的文本颜色

图标的激活状态与未激活状态的图像都是我们自定义的,但是文本我们没有特意去搞,默认状态下激活状态的文本是蓝色

只需要给van-tabbar这个标签加上active-color属性就可以了

这样激活状态的文字就变为你想要的颜色了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.2 “ P4G42_V1

P4G42_V1 产品参数 产品型号 P4G42_V1 尺寸(mm) 124*90*12mm&#xff08;不含安装支架&#xff09; 屏幕尺寸 4.2 inch 显示技术 电子墨水屏显示 显示区域(mm) 84.6(H) * 63.4(V) 分辨率(像素) 400*300 像素密度 120dpi 显示颜色 黑/白 外观颜色 白色&…

springMVC(二)—— 进阶

一、解决中文乱码问题 解决中文乱码问题的关键在于判断字符是什么时候乱码的 先在java程序里刚生成这个值的地方打印一下&#xff0c;如果在控制台输出就乱码了&#xff0c;那就排除浏览器和jsp页面的编码出问题。否则 看浏览器的编码 看这个jsp页面的编码是否设置好了 一般不用…

Python启动TCP服务并监听连接,从客户端发送消息

下面是一个简单的例子&#xff0c;演示如何在Python中启动TCP服务并监听连接&#xff0c;以及如何从客户端发送消息&#xff1a; TCP服务端代码&#xff1a; import socketHOST 192.168.6.211 PORT 8888server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM) …

electron的(maximize)最大化方法会导致头部白色横条以及四周大黑边

参考文章&#xff1a;https://www.w3cways.com/2505.html 感谢这位博主 我在使用win.maximize()后发现应用程序虽然最大化了&#xff0c;但是四周和顶部有一定宽度的黑边白边&#xff0c;在百度一段时间后没有发现其他人有这个问题 &#x1f614;唉 必现步骤&#xff1a; 只要…

禁止 input 输入框显示历史记录

问题概述 在 HTML 开发中会 input 标签是非常常用的&#xff0c; 当在 input 标签 输入数据后&#xff0c;再点击输入框会显示原来输入过的内容&#xff0c;还会出现下拉的历史记录。让使用人员感觉比较恶心。 解决方案&#xff08;隐藏记录框&#xff09; 隐藏记录框 aut…

环二肽试剂:7451-73-2,CYCLO(-GLY-TRP),环(甘氨酰-L-色氨酰)

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ CYCLO(-GLY-TRP)环二肽&#xff0c;含有(甘氨酰和色氨酰基团&#xff09;&#xff0c;色氨酸又名α-氨基吲哚基丙酸&#xff0c;分子式:C11H12N2O2&#xff0c;白色至黄白色晶体或结晶性粉末。无臭或微臭&#xff0c;长时间…

Apifox详细使用教程 -- 有这一篇就够了

文章目录 Apifox简介 Apifox的安装与新建项目 Apifox编写接口文档 总结 四、Apifox的使用快捷键 一、Apifox简介 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台&#xff0c;更先进的 API 设计/开发/测试工具&#xff0c;定位 Postman Swagger Mock J…

SpringBoot + Kotlin 中使用 GRPC 进行服务通信

示例项目见&#xff1a;kotlin-grpc 一、导入依赖&#xff1a; import com.google.protobuf.gradle.* plugins { id("org.springframework.boot") version "2.3.1.RELEASE" id("io.spring.dependency-management") version "1.0.9.REL…

面试官常问的一些初中级前端知识点

CSS 1. 介绍下 CSS 盒子模型 回答到以下两点就可以&#xff1a; 一个盒子由四个部分组成&#xff1a;content、padding、border、margin。两种盒子模型&#xff1a;W3C 标准盒子模型、IE 怪异盒子模型标准盒子模型 width / height 只是内容高度&#xff0c;不包含 padding 和…

平板ipad触控笔是哪几款?苹果笔性价比高的推荐

实际上&#xff0c;现在市场上许多产品都有各自的特色&#xff0c;一些注重产品外观&#xff0c;一些注重产品功能。就相当于ipad上所搭配的电容笔。所以&#xff0c;在购买电容笔的时候&#xff0c;必须对电容笔有一些认识。在选购前&#xff0c;必须先了解各种类型的电容笔&a…

7-8 程序员买包子

7-8 程序员买包子 分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 这是一条检测真正程序员的段子&#xff1a;假如你被家人要求下班顺路买十只包子&#xff0c;如果看到卖西瓜的&#xff0c;买一只。那么你会在什么情况下只买一只包子回家&#xff1f; 本题要求你考…

线程 线程池

线程和进程的区别? 进程是正在运行程序的实例&#xff0c;进程中包含了线程&#xff0c;每个线程执行不同的任务 不同的进程使用不同的内存空间&#xff0c;在当前进程下的所有线程可以共享内存空间 线程更轻量&#xff0c;线程上下文切换成本一般上要比进程上下文切换低 创…

博士后申请哪些老板不要选?

博士后申请是许多研究人员迈向学术界的重要阶段。在选择导师时&#xff0c;需要慎重考虑各方面因素。虽然我不能提及具体老板的名字&#xff0c;但我可以给你一些在博士后申请过程中需要谨慎选择的类型。以下是知识人网小编整理的一些可能不适合选择的老板类型&#xff1a; 1. …

Spring-AutowireFactoryBean

autowire autowire 即自动注入的意思&#xff0c;通过使用 autowire 特性&#xff0c;我们就不用再显示的配置 bean 之间的依赖了。把依赖的发现和注入都交给 Spring 去处理&#xff0c;省时又省力。autowire 几个可选项&#xff0c;比如 byName、byType 和 constructor 等。a…

刘铁猛C#教程学习笔记--初识C#程序

构成C#程序的基本元素 关键字&#xff1a;C#保留的用作特殊用途的标识符标识符&#xff1a;名字&#xff0c;如变量名字&#xff0c;类名字&#xff0c;命名空间名字等等&#xff1b; 标识符命名规则&#xff1a;只能以数字字母或者下划线开头&#xff0c;不能用关键字作为标识…

喜讯!云联壹云入选2023年北京市“专精特新”中小企业

6月25日&#xff0c;北京市经济和信息化局发布《关于对2023年第一季度北京市专精特新中小企业名单进行公告的通知》&#xff0c;北京云联壹云技术有限公司入选2023年北京市“专精特新”中小企业。 “专精特新”是国家为增强企业自主创新能力和核心竞争力&#xff0c;不断提高中…

HHDESK资源管理功能

为使客户体验更上一层楼&#xff0c;我们在最新的HHDESK版本中&#xff0c;新增了一个功能“资源管理”&#xff0c;其中不仅整合了原有的连接管理、网络代理功能&#xff0c;还增加了不少实用的新功能。 本篇便为您简单介绍一下。 1 本地服务 可以方便的调用本地资源。 比如…

基于STM32设计的酒精检测仪

一、需求分析 随着社会的发展和生活水平的提高&#xff0c;人们对于行车安全、家庭安全的要求越来越高&#xff0c;而酒驾等问题也日渐突出&#xff0c;为此&#xff0c;开发一款基于STM32的酒精检测仪&#xff0c;通过检测酒精浓度&#xff0c;实时显示结果并进行报警&#x…

openGauss学习笔记-05 openGauss gsql连接与使用方法

文章目录 openGauss学习笔记-05 openGauss gsql连接与使用方法5.1 以操作系统用户omm登录数据库主节点5.2 连接数据库5.3 数据库简单操作5.4 退出数据库 openGauss学习笔记-05 openGauss gsql连接与使用方法 openGauss提供了在命令行下运行的数据库连接工具gsql。此工具除了具…

【AI】在NVIDIA Jetson Orin Nano上使用tensorrtx部署yolov8

1、下载 1.1 权重文件下载 https://github.com/ultralytics/assets/releases本人下载的yolov8n.pt yolov8n-cls.pt:用于分类 yolov8n-pose.pt:用于姿势识别 yolov8n-seg.pt:用于对象分割 yolov8n-v8loader.pt:专用于人员检测器??? yolov8n.pt:用于对象检测 1.2 源码…