解决微信小程序 自定义tabBar 首次切换时候闪烁问题(实测)

这篇具有很好参考价值的文章主要介绍了解决微信小程序 自定义tabBar 首次切换时候闪烁问题(实测)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

按照官方自定义tabBar:

  1. 配置信息
    在 app.json 中的 tabBar 项指定 custom 字段,同时其余 tabBar 相关配置也补充完整。
    所有 tab 页的 json 里需声明 usingComponents 项,也可以在 app.json 全局开启。
    我的示例:
{
  "tabBar": {
    "custom": true,
    "color": "#a9b7b7",
    "selectedColor": "#11cd6e",
    "borderStyle": "black",
    "list": [
      {
        "pagePath": "pages/index/index",
        "iconPath": "images/tabbar/home0.png",
        "selectedIconPath": "images/tabbar/home1.png",
        "text": "首页"
      },
      {
        "pagePath": "pages/my/index",
        "iconPath": "images/tabbar/my0.png",
        "selectedIconPath": "images/tabbar/my1.png",
        "text": "我的"
      }
    ]
  1. 添加 tabBar 代码文件
    在代码根目录下添加入口文件 custom-tab-bar :必须与pages在同一根目录下。
    小程序切换页面闪烁,微信小程序,小程序,javascript

  2. 编写 tabBar 代码
    用自定义组件的方式编写即可,该自定义组件完全接管 tabBar 的渲染,我的代码如下:
    index.js:

// custom-tab-bar/index.js
Component({
  data: {
    selected: 0,
    color: "#696969",
    selectedColor: "#31F60A",
    "list": [
        {
          "pagePath": "/pages/index/index",
          "iconPath": "/images/tabbar/home0.png",
          "selectedIconPath": "/images/tabbar/home1.png",
          "text": "首页",
        },    
        {
          "pagePath": "/pages/my/index",
          "iconPath": "/images/tabbar/my0.png",
          "selectedIconPath": "/images/tabbar/my1.png",
          "text": "我的",
        }
    ]
  },
  attached() {
  },
  methods: {
    switchTab(e) 
    {
      const data = e.currentTarget.dataset
      const url = data.path
      wx.switchTab({url})
      // this.setData({
      //  selected: data.index
     // })
    }
  }
})

index.json:

{
  "component": true
}

index.wxml:

<!--miniprogram/custom-tab-bar/index.wxml-->
<view class="tab-bar">
  <view class="tab-bar-border"></view>
  <view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
    <image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image>
    <view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view>
  </view>
</view>

index.wxss:

/* custom-tab-bar/index.wxss */
.tab-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 48px;
  background: white;
  display: flex;
  padding-bottom: env(safe-area-inset-bottom);
}

.tab-bar-border {
  background-color: rgba(0, 0, 0, 0.33);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 1px;
  transform: scaleY(0.5);
}

.tab-bar-item {
  flex: 1;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.tab-bar-item image {
  width: 27px;
  height: 27px;
}

.tab-bar-item view {
  font-size: 10px;
}

4.在每一个需要引用自定义tabBar的页面js文件内添加引入代码:
小程序切换页面闪烁,微信小程序,小程序,javascript

// 引入Tabbar
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 4
        })
      }
    }
  }
})

这里的 selected:首页是0,之后依次排序。
好了,到这里基本是官方给出的方法,但是首次点击tabBar时,图标闪烁,试验了很多,都无效。
最后将app.json内引入tabBar组件的 custom由true改为false,就不再闪烁了。文章来源地址https://www.toymoban.com/news/detail-623756.html

到了这里,关于解决微信小程序 自定义tabBar 首次切换时候闪烁问题(实测)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 定义tabbar,以及解决原生微信小程序使用vant的tabbar的bug(点击俩次图标才正确激活)

    详细步骤,可以参考小程序官方给出的文档: https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html 在 app.json 中的 tabBar 项指定 custom 字段 在代码根目录下添加入口文件: custom-tab-bar用自定义组件的方式编写即可,用自定义组件的方式编写即可,该自定义组件完全接

    2024年04月14日
    浏览(41)
  • 【微信小程序入门到精通】— 微信小程序实现多页面切换(tabBar)

    对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢? 为此我特意开设此专栏,在我学习的同时也将其分享给大家! 本篇文章将给大家带来如何添加页面切换效果,我们前面所讲解的都是停留在某一页面上面进行预览,接下来我们将

    2024年02月03日
    浏览(114)
  • 【微信小程序】在非tabbar页面使用导航栏进行切换

    当在我们做微信小程序项目时会遇到有多个端口的项目需求,然而多个端口意味着多个导航栏。但微信小程序仅支持使用 app.json 创建 一个导航栏 (如下图) 在app.json中配置的tabbar app.json 所以我们只能自己制作导航栏并且使用页面路由方式来进行页面跳转(如 wx.navigateTo; w

    2024年02月13日
    浏览(51)
  • 【微信小程序入门篇】全局配置 | 页面切换之tabBar配置项

    下面引用开发者文档中的介绍: 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。 tabBar:翻译为标签栏。 下面展示了两个小程序的 tab 栏,分别是在顶部、底部。 当我

    2024年02月02日
    浏览(51)
  • uni小程序 自定义tabbars切换 闪动问题解决(通俗易懂)

    在小程序开发中,默认tabbar基本上是不能够满足我们的需求的,多数情况下都需要引入自定义的tabba, 但是在使用自定义tabbar的过程中就会遇到一些问题,例如切换闪动(由于tabbar页面跳转,组件重新创建导致)... 下面就看看怎么样去解决这个问题 其实很简单, 就是以组件

    2024年02月09日
    浏览(37)
  • 微信小程序自定义tabBar

    首页 分类 留言 我的 /components/index-tabbar/index.js Component({ properties: { active: { type: String, value: ‘index’ }, }, methods: { onChange(event) { wx.redirectTo({ url: /pages/${event.detail}/index , }) } } }) 模拟的 tabbar 页面写法如下: /pages/home/index.json { “usingComponents”: { “index-tabbar”: “/components/index-ta

    2024年04月24日
    浏览(66)
  • 微信小程序——自定义底部tabBar

    目录  实现步骤 1、配置信息 2、添加代码文件。  3、在该目录下编写代码即可。 二、在app.json里面添加tabBar配置 三.、在custom-tab-bar添加配置 1. 在custom-tab-bar创建如下目录 2.给index.wxml添加tabBar的结构代码   3. 给index.js 添加数据配置 和 事件方法 4. 给index.wxss 添加样式 四、

    2024年02月16日
    浏览(56)
  • 微信小程序自定义tabBar使用

    自定义使用tabbar步骤 文章目录 一、为什么要使用自定义tabBar? 二、使用步骤 总结 微信小程序官方默认的tabbar有很多局限性,比如无法调整图片和文字大小、不能动态调整个数等。 小程序开发版本:RC Build (1.06.2206271) 在小程序开发文档中找到指南--》基础能力--》自定义tab

    2024年02月09日
    浏览(57)
  • 微信小程序 5分钟请求一次接口,监听切换tabBar停止请求

    1 app.vue 设置全局变量 export default {         globalData: {             clearTime:null,         },  } 2 index.vue   onShow() {     //每隔5分钟一次请求     this.collageFun();   }, methods:{     collageFun(){         let _this = this;             var app = getApp() //获取全局状态变量     

    2024年02月09日
    浏览(43)
  • 微信小程序自定义tabBar(边框圆角)

    先看看自定义tabBar的效果     可能图片效果不是很明显,我用红框框出来了,这样看起来明显一点。 接下来就是具体步骤了  先在pages里建两个文件夹,我现在做的项目tabBar只有两个,所以我建了两个文件夹,如果大于两个用这个方法也可以,但是不能多于五个。 app.json中

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包