鸿蒙开发—黑马云音乐之广告页

目录

1.页面布局

2.点击按钮跳转

3.倒计时自动跳转


接下来是项目实战,项目选用传智的黑马云音乐。

效果图如下:

1.页面布局

@Entry
@Component
struct ADPage {
  @State message: string = 'Hello World'

  build() {
    Stack({alignContent:Alignment.TopEnd}) {
      Image($r('app.media.ad'))
      Button({type:ButtonType.Normal}) {
        Text('跳过5')
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({top:10,right:10})
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
    }
  }
}

给主体增加一个stack容器,先放一张广告图片,建议选择本地图片,再放一个button,之后微调样式与位置。

2.点击按钮跳转

// 广告页的布局+逻辑
import router from '@ohos.router'

@Entry
@Component
struct ADPage {
  @State message: string = 'Hello World'

  build() {
    Stack({alignContent:Alignment.TopEnd}) {
      // 背景图片
      Image($r('app.media.ad'))

      // 背景图上的按钮
      Button({type:ButtonType.Normal}) {
        Text('跳过5')
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({top:10,right:10})
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
      .onClick(()=>{
      // 当用户点击按钮以后会被执行
      // 跳转到Index页面
        router.replaceUrl({url:'pages/Index'})
      })
    }
  }
}

给stack增加一个onclick属性,点击后会触发里面的内容或函数,设置跳转位置Index页。

3.倒计时自动跳转

页面进入的时候启动倒计时,可以在ets页面中使用aboutToAppear()方法

aboutToAppear()方法开启倒计时,倒计时可以使用setInterval()

import router from '@ohos.router'

@Entry
@Component
struct ADPage {
  @State count: number = 5 //表示5秒钟

  aboutToAppear() {
    // 开启倒计时功能,5秒以后自动跳转到首页
    // 1秒 = 1000毫秒
    setInterval(() => {
      this.count--
      console.log('触发:', this.count)
      //  如果this.count 等于0的时候,跳转到首页
      if (this.count == 0) {
        router.replaceUrl({ url: 'pages/Index' })
      }
    }, 1000)

    // router.replaceUrl({ url: 'pages/Index' })
  }

  build() {
    Stack({ alignContent: Alignment.TopEnd }) {
      // 背景图片
      Image($r('app.media.ad'))

      // 背景图上的按钮
      Button({ type: ButtonType.Normal }) {
        Text(`跳过${this.count}`)
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({ top: 10, right: 10 })
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
      .onClick(() => {
        // 当用户点击按钮以后会被执行
        // 跳转到Index页面
        router.replaceUrl({ url: 'pages/Index' })
      })
    }
  }
}

@State count: number = 5,设置变量count,初始值为5。

在aboutToAppear()方法中使用setInterval()。

 this.count--,count自减。

 if (this.count == 0) {
        router.replaceUrl({ url: 'pages/Index' })

判断count值,满足之后跳转到Index。

 console.log('触发:', this.count) 可以查看日志

查看步骤如下:

1)添加设备

2)启动模拟器

3)运行项目

4)查询

console.log('触发:', this.count)一开始设置的关键词是触发,输入触发搜索。

Text('跳过5')要改为Text(`跳过${this.count}`),这里单引号改为反引号“  ``  ”,引用变量固定格式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SmoothSailingT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值