欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > uniapp 实现tabbar图标凸起

uniapp 实现tabbar图标凸起

2025/9/21 16:21:07 来源:https://blog.csdn.net/weixin_52479803/article/details/141923128  浏览:    关键词:uniapp 实现tabbar图标凸起

实现tabbar图标凸起有两种,第一种是自定义tabbar,第二种就是使用官方的tabbar跟api实现,自定义在体验中不如原生的tabbar,所以我下面展示的是使用官方的tabbar跟api实现

效果如图:

左边是未选中中间的凸起,右边是选中中间凸起,有一个问题就是我们选中凸起后文字颜色没有改变,目前我还没找到解决方案,有办法的兄弟们 可以留言

代码实现

tabbar

"tabBar": {"borderStyle": "white","backgroundColor": "white","color": "#8F8F94","selectedColor": "#e3b23e","list": [{"pagePath": "pages/xxxx/xxxx","iconPath": "static/uni.png","selectedIconPath": "static/uni.png","text": "主页"},{"pagePath": "pages/xxxx/xxxx","iconPath": "static/uni.png","selectedIconPath": "static/uni.png","text": "积分榜"},{"pagePath": "pages/xxxx/xxxx","iconPath": "static/c8.png","selectedIconPath": "static/uni.png","text": "订阅/下单","visible": false},{"pagePath": "pages/xxxx/xxxx","iconPath": "static/uni.png","selectedIconPath": "static/uni.png","text": "任务"},{"pagePath": "pages/xxxx/xxxx","iconPath": "static/uni.png","selectedIconPath": "static/uni.png","text": "我的账户"}],"midButton": {"iconPath": "static/c8.png","iconWidth": "60px","height": "80px","text": "订阅/下单"}}

midButton  中间按钮 仅在 list 项为偶数时有效,官方说明:

 pages.json 页面路由 | uni-app官网

 监听点击中的tabbar,并修改图标为选中状态  app.vue中监听

// 点击中间按钮  uni.onTabBarMidButtonTap(() => {console.log('中间')uni.setTabBarStyle({midButton: {"iconPath": "static/uni.png","iconWidth": "60px","height": "80px","text": "订阅/下单","color": "red"}})uni.switchTab({url: '/pages/xxx/xxx'})})

然后在其他的tabbar list的页面监听tabbar点击,点击不是中间tabbar,为其他tabbar时 将中间tabbar又改为未选中状态

<script>import {onTabItemTap} from "@dcloudio/uni-app"import {} from 'vue';export default {setup() {onTabItemTap((e) => {uni.setTabBarStyle({midButton: {"iconPath": "static/c8.png","iconWidth": "60px","height": "80px","text": "订阅/下单"}})})return {};}};
</script>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com