OpenHarmony/HarmonyOS微信的Tab按钮

OpenHarmony/HarmonyOS微信的Tab按钮

我们今天就来仿一个微信的Tab按钮

以下是今天的内容。

作者:坚果
团队:坚果派
公众号:“大前端之旅”
润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领100+队员完成Pr的提交合入。
欢迎通过主页或者私信联系我,加入坚果派,一起学习OpenHarmony/HarmonyOS应用开发。

效果

image-20230701111054148

源码

@Entry
@Component
struct MainPage {
  @State fontColor: Color = Color.Grey
  @State selectedFontColor: Color = Color.Orange
  @State currentIndex: number = 0
  private controller: TabsController = new TabsController()

  @Builder TabBuilder(index: number, name: string) {
    Column() {
      Text(name)
        .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
        .fontSize(16)
        .fontWeight(this.currentIndex === index ? 500 : 400)
        .lineHeight(22)
        .margin({ top: 17, bottom: 7 })

    }.width('100%')
  }

  build() {
    Column() {
      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
        TabContent() {
          Column(){
            Text("微信").fontSize(50)
          }.width('100%').height('100%').justifyContent(FlexAlign.Center)
        }.tabBar(this.TabBuilder(0, '微信'))

        TabContent() {
          Column(){
            Text("xjg13690").fontSize(50)
          }.width('100%').height('100%').justifyContent(FlexAlign.Center)
        }.tabBar(this.TabBuilder(1, '通讯录'))

        TabContent() {
          Column(){
            Text("发现").fontSize(50)
          }.width('100%').height('100%').justifyContent(FlexAlign.Center)
        }.tabBar(this.TabBuilder(2, '发现'))

        TabContent() {
          Column(){
            Text("坚果").fontSize(50)
          }.width('100%').height('100%').justifyContent(FlexAlign.Center)
        }.tabBar(this.TabBuilder(3, '我'))
      }
      .vertical(false)
      .barMode(BarMode.Fixed)
      .barWidth(360)
      .barHeight(56)
      .animationDuration(400)
      .onChange((index: number) => {
        this.currentIndex = index
      })
      .width(360)


      .backgroundColor('#F1F3F5')
    }.width('100%')
  }
}

完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚果的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值