@Entry
@Component
struct Page357 {
  @State arr:string[] = ['a1','a2','a3','a4','a5','a6','a7','a8','a9','a10']
  // 每页有几个数据
  pageSize:number = 3
  // 设置点击的页码
  @State page:number = 1
  // 获取页数
  @State pageCount:number = Math.ceil(this.arr.length / this.pageSize)
  // 把获取的页数变为数组
  @State pages:number[] = Array(this.pageCount)
  aboutToAppear(): void {
    // 存入页码
    for (let i = 0; i < this.pageCount; i++) {
      this.pages[i] = i + 1
    }
  }
  build() {
    Column(){
      ForEach(this.arr.slice((this.page - 1) * this.pageSize,this.page * this.pageSize),(item:string,index:number)=>{
        Text(item).fontSize(50)
      })
      Row(){
        ForEach(this.pages,(item:number,index:number)=>{
          Button(item.toString()).onClick(()=>{
            this.page = item
          }).backgroundColor(item === this.page ? Color.Red : Color.Gray)
        })
      }
    }
    .width('100%')
    .height('100%')
  }
}

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐