uni-app 鸿蒙next通过uni.setTabBarItem设置tabbar图片无效

uni-app 鸿蒙next通过uni.setTabBarItem设置tabbar图片无效

项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
HBuilderX类型 正式
HBuilderX版本号 4.36
手机系统 HarmonyOS NEXT
手机系统版本号 HarmonyOS NEXT Developer Beta2
手机厂商 华为
手机机型 mate60
页面类型 nvue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

示例代码:

见测试工程

操作步骤:

uni.setTabBarItem

预期结果:

改变选中后的图片样式

实际结果:

无法改变

bug描述:

uni.setTabBarItem设置selectedIconPath无效


更多关于uni-app 鸿蒙next通过uni.setTabBarItem设置tabbar图片无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

HBuilderX 4.42.2024121808-alpha 已修复。

更多关于uni-app 鸿蒙next通过uni.setTabBarItem设置tabbar图片无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


该问题已修复
临时解决方案:找到:/oh_modules/@dcloudio/uni-app-runtime/src/main/resources/rawfile/uni-app/uni-app-harmony-framework-dev.js 这个文件,替换下面文件
注意:需要在 deveco 中重新运行才会生效

在处理uni-app在鸿蒙next系统上通过uni.setTabBarItem设置tabbar图片无效的问题时,通常我们需要确保几个方面:图片路径的正确性、图片格式的支持、以及API调用的时机。以下是一个示例代码,展示如何正确设置tabbar的图片,并包含一些可能的调试步骤。

示例代码

首先,确保你的pages.json中已正确配置了tabBar:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/about/about",
      "style": {
        "navigationBarTitleText": "关于"
      }
    }
  ],
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "static/tabbar/home.png",
        "selectedIconPath": "static/tabbar/home_active.png"
      },
      {
        "pagePath": "pages/about/about",
        "text": "关于",
        "iconPath": "static/tabbar/about.png",
        "selectedIconPath": "static/tabbar/about_active.png"
      }
    ]
  }
}

然后,在你的应用逻辑中,如果你需要在运行时动态修改tabbar项,可以使用uni.setTabBarItem,确保图片路径正确且已包含在项目资源中:

// 假设在某个页面或组件的onLoad方法中调用
onLoad() {
  uni.setTabBarItem({
    index: 1,
    text: '动态修改',
    iconPath: '/static/tabbar/new_about.png', // 注意路径前的斜杠
    selectedIconPath: '/static/tabbar/new_about_active.png'
  });
}

调试步骤

  1. 检查图片路径:确保iconPathselectedIconPath指定的路径是相对于项目根目录的正确路径。在鸿蒙设备上,路径解析可能与其他平台略有不同。

  2. 图片格式:确认图片格式是否被鸿蒙系统支持。常见的PNG格式通常没有问题,但如果是其他格式(如SVG),可能需要额外处理。

  3. 调用时机uni.setTabBarItem应在页面加载后调用,避免在App()onLaunch()等全局生命周期中过早调用,因为此时tabBar可能还未完全初始化。

  4. 日志输出:在调用uni.setTabBarItem前后添加console.log,检查是否执行到该代码段,以及是否有错误抛出。

通过上述步骤和示例代码,你应该能够解决在鸿蒙next系统上通过uni.setTabBarItem设置tabbar图片无效的问题。如果问题依旧存在,建议检查uni-app的官方文档或社区,看是否有关于鸿蒙系统特定的问题或更新。

回到顶部