「已注销」 2023-03-01 09:43 采纳率: 77.8%
浏览 28
已结题

uni-app底部导航栏切换图标

uni-app底部导航栏切换图标,点击首页,怎么样把图标切换了然后向上移?

img

img

img

  • 写回答

2条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2023-03-01 10:35
    关注

    给个例子你参考:
    假如我的导航有“消息”、“首页”和“我的”三个导航按钮
    要切换底部导航栏的图标和文字,可以通过以下步骤来实现:
    -在 pages.json 中设置 tabBar 配置项,包括 tab 样式、页面路径、默认选中的 tab 等。

    {
      "tabBar": {
        "color": "#666",
        "selectedColor": "#007aff",
        "backgroundColor": "#f8f8f8",
        "borderStyle": "white",
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页",
            "iconPath": "static/tab-bar/home.png",
            "selectedIconPath": "static/tab-bar/home-active.png"
          },
          {
            "pagePath": "pages/message/message",
            "text": "消息",
            "iconPath": "static/tab-bar/message.png",
            "selectedIconPath": "static/tab-bar/message-active.png"
          },
          {
            "pagePath": "pages/mine/mine",
            "text": "我的",
            "iconPath": "static/tab-bar/mine.png",
            "selectedIconPath": "static/tab-bar/mine-active.png"
          }
        ]
      }
    }
    
    • 在底部导航栏页面的 .vue 文件中,通过修改 data 中的 tabList 数组的元素,来改变对应 tab 的图标和文字。
    <template>
      <view>
        <text>这是首页</text>
      </view>
    </template>
    
    <script>
    export default {
      data() {
        return {
          tabList: [
            {
              pagePath: "/pages/index/index",
              text: "首页",
              iconPath: "/static/tab-bar/home.png",
              selectedIconPath: "/static/tab-bar/home-active.png"
            },
            {
              pagePath: "/pages/message/message",
              text: "消息",
              iconPath: "/static/tab-bar/message.png",
              selectedIconPath: "/static/tab-bar/message-active.png"
            },
            {
              pagePath: "/pages/mine/mine",
              text: "我的",
              iconPath: "/static/tab-bar/mine.png",
              selectedIconPath: "/static/tab-bar/mine-active.png"
            }
          ]
        };
      },
      onShow() {
        // 修改 tabList 数组的第一个元素
        this.tabList[0] = {
          pagePath: "/pages/index/index",
          text: "其他",
          iconPath: "/static/tab-bar/other.png",
          selectedIconPath: "/static/tab-bar/other-active.png"
        };
      }
    };
    </script>
    

    上面的代码中,我在 onShow 生命周期中修改了 tabList 数组的第一个元素,将“首页”改为“其他”,并替换了对应的图标。

    你在修改 tabList 数组时,要保证其与 pages.json 中的 tabBar.list 数组一一对应,否则会导致底部导航栏显示异常。

    希望能帮助到你

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么