HarmonyOS 鸿蒙Next 自定义tabs设置背景颜色,有白色细线异常显示

HarmonyOS 鸿蒙Next 自定义tabs设置背景颜色,有白色细线异常显示

自定义tabs设置背景颜色,有白色细线异常显示

2 回复

参考demo

import BeginnerModeTab from '../components/tabs/BeginnerModeTab'
import ProModeTab from '../components/tabs/ProModeTab'
import AverageLawTab from '../components/tabs/AverageLawTab'
import MetronomeTab from '../components/tabs/MetronomeTab'
let storage = LocalStorage.getShared()
interface beginnerModeTabProps {
 phoneticName: string
}
[@Entry](/user/Entry)(storage)
[@Component](/user/Component)
struct Index {
 // bottomRectHeight: string = AppStorage.get<number>('bottomRectHeight') + 'px';
 [@LocalStorageLink](/user/LocalStorageLink)('phoneticName') phoneticName: string = 'D';
 [@State](/user/State) currentIndex: number = 0; // 当前tab值
 private tabsController: TabsController = new TabsController();
 // 自定义tabs
 [@Builder](/user/Builder)
 TabBuilder(title: string, targetIndex: number, selectedImg: Resource, normalImg: Resource) {
   Column() {
     Image(this.currentIndex === targetIndex ? normalImg : selectedImg)
       .size({ width: 25, height: 25 })
     Text(title)
       .fontColor(this.currentIndex === targetIndex ? '#fff' : '#999')
       .fontSize(12)
   }
   .width('100%')
   .height(50)
   .justifyContent(FlexAlign.Center)
   .backgroundColor('#78c371') // 设置Tabs组件背景颜色
   .borderWidth(0) // 移除边框宽度
   .padding(0) // 确保没有多余的填充
   .margin(0) // 确保没有多余的边距
   .onClick(() => {
     this.currentIndex = targetIndex;
     this.tabsController.changeIndex(this.currentIndex);
   })
 }
 build() {
   Tabs({ barPosition: BarPosition.End, index: this.currentIndex, controller: this.tabsController }) {
     // 初学模式
     TabContent() {
       Column() {
         BeginnerModeTab({
           // test: 'null'
           phoneticName: this.phoneticName
         })
       }
       .width('100%')
       .height('100%')
       .backgroundColor('#fff')
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) // 图片组件的绘制区域扩展至状态栏和导航条。
     }
     .tabBar(this.TabBuilder('初学模式', 0, $r('app.media.icon_mode_junior_sel'), $r('app.media.icon_mode_junior')))
     // 专业模式
     TabContent() {
       Column() {
         ProModeTab()
       }
       .width('100%')
       .height('100%')
       .backgroundColor('#3a3a3a')
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
     }
     .tabBar(this.TabBuilder('专业模式', 1, $r('app.media.icon_mode_pro_sel'), $r('app.media.icon_mode_pro')))
     // 十二平均律
     TabContent() {
       Column() {
         AverageLawTab()
       }
       .width('100%')
       .height('100%')
       .backgroundColor('#3a3a3a')
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
     }
     .tabBar(this.TabBuilder('十二平均律', 2, $r('app.media.icon_mode_average_sel'),
       $r('app.media.icon_mode_average')))
     // 节拍器
     TabContent() {
       Column() {
         // 添加你的内容
         MetronomeTab()
       }
       .width('100%')
       .height('100%')
       .backgroundColor('#fff')
       .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
     }
     .tabBar(this.TabBuilder('节拍器', 3, $r('app.media.icon_mode_metronome_sel'),
       $r('app.media.icon_mode_metronome')))
   }
   .backgroundColor('#78c371') // 确保Tabs组件背景颜色为绿色
   .borderWidth(0) // 确保Tabs组件没有边框
   .padding(0) // 确保Tabs组件没有多余的填充
   .margin(0) // 确保Tabs组件没有多余的边距
   .scrollable(false)
   .animationDuration(0)
   .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) // 图片组件的绘制区域扩展至状态栏和导航条。
   // .margin({ top: this.bottomRectHeight, bottom: this.bottomRectHeight }) // 此处margin具体数值在实际中应与导航条区域高度保持一致
 }
}

更多关于HarmonyOS 鸿蒙Next 自定义tabs设置背景颜色,有白色细线异常显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next自定义tabs设置背景颜色后出现白色细线异常显示的问题,这通常是由于UI布局或样式设置不当导致的。以下是一些专业的排查和解决思路:

  1. 检查布局文件:确保tabs组件的布局设置正确,特别是背景颜色的设置。检查是否有其他布局或组件覆盖了tabs的背景,导致白色细线出现。
  2. 审查样式设置:仔细查看tabs组件及其子组件的样式设置,确保没有设置不当的边框、内边距或背景图片等属性,这些属性可能会影响背景颜色的正确显示。
  3. 测试不同设备:在不同版本和配置的HarmonyOS设备上测试应用,以排查是否由特定设备或系统版本导致的问题。
  4. 更新系统和工具:确保已安装最新版本的HarmonyOS和相关开发工具,因为新版本可能修复了已知的UI显示问题。

如果上述方法均未能解决问题,可能是由于更复杂的系统或代码问题导致的。此时,建议深入检查代码逻辑,或查阅最新的HarmonyOS开发文档以获取更具体的解决方案。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部