鸿蒙小练习

bean对象

复制代码
export  class  BannerImage{
  id:number
  url:string
  targetUrl:string
  productId:number

  constructor(id: number, url: string, targetUrl: string, productId: number) {
    this.id = id
    this.url = url
    this.targetUrl = targetUrl
    this.productId = productId
  }
}

export class  dtos{
  pid:number

  constructor(pid: number) {
    this.pid = pid
  }

}

首页

复制代码
import {SysTemContents} from "../commons/Contents"
import { router } from '@kit.ArkUI';
import {BannerImage,dtos} from "../beans/BeannerImages"

@Entry
@Component
struct Index {

  // @State message: string = 'Hello World';
  @State bannerArr:BannerImage[] =[
    new BannerImage(1,"app.media.1","pages/SearchPage",1),
    new BannerImage(2,"app.media.2","pages/SearchPage",2),
    new BannerImage(3,"app.media.3","pages/SearchPage",3),
    new BannerImage(4,"app.media.4","pages/SearchPage",4),
    new BannerImage(5,"app.media.5","pages/SearchPage",5),
  ]
  @State bannerIndex:number =0
  build() {
Column() {


  Column() {
    //   搜索栏
    Row() {
      // Image()
    }.width(30)
    .backgroundColor("#ffff2626")
    Row({ space: 5 }) {
      Text("想要什么就搜一搜")
    }.width("70%")
    .backgroundColor("#ffff")
    .height(35).onClick(() => {
      router.pushUrl({
        url: "pages/SearchPage"
      })
    })
    Row() {
      Swiper() {
        ForEach(this.bannerArr, (item: BannerImage) => {
          Image($r(item.url))
        })
        // Image($r("app.media.2")).objectFit(ImageFit.ScaleDown)
        // Image($r("app.media.3"))
        // Image($r("app.media.4"))
        // Image($r("app.media.5"))
        // Image($r("app.media.1"))
      }
      .onChange((index: number) => {
        // console.log(index.toString())
        this.bannerIndex = index
      })
      // 点击事件
      .onClick(() => {
        //  这里写图片的跳转
        console.log(this.bannerIndex.toString())
        router.pushUrl({
          url: this.bannerArr[this.bannerIndex].targetUrl,
          params: this.bannerArr[this.bannerIndex].productId
        })

      })
      .indicator( // 设置圆点导航点样式
        new DotIndicator()
          .itemWidth(15)
          .itemHeight(15)
          .selectedItemWidth(15)
          .selectedItemHeight(15)
          .color(Color.Gray)
          .selectedColor(Color.Blue))
      .autoPlay(true)
      .loop(true)
      .borderRadius(12)

    }.width("95%").height(150).backgroundColor("#fff").margin({ top: 12 })

  }.width("100%")

  Row(){
    Column(){
      Image($r("app.media.shangp")).width(30)
      Text("商品").margin({top:6})
    }
    Column(){
      Image($r("app.media.shangp")).width(30)
      Text("美容").margin({top:6})
    }
    Column(){
      Image($r("app.media.shangp")).width(30)
      Text("洗脚").margin({top:6})
    }
    Column(){
      Image($r("app.media.shangp")).width(30)
      Text("洗脚").margin({top:6})
    }
  }
  .justifyContent(FlexAlign.SpaceAround)
  .height(100)
  .backgroundColor("#fff")
  .width("100%")

  Row(){
    Text("猜你喜欢谁")
  }
  Divider().strokeWidth(1).color('#ff600505')

}

.height(220)
    .backgroundColor("#ff9d274c")
  }
}

跳转页面

复制代码
import { router } from '@kit.ArkUI';

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

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('SearchPageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')

  }
  onPageShow(): void {
    let n1 = router.getParams()
    console.log("这是我接受的参数")
    // console.log(n1.toString())
    console.debug(n1.toString())
  }
}

效果图

跳转后页面

明明拿到了参数,但是为什么会报错?可能是类型对不上,因为我传的参数是int

练习的知识点:

1.轮播图

bean对象

轮播图我遍历了下一个对象的数组,类似于java数组

2.页面跳转

带有参数跳转页面,模仿广告跳转

3.快捷菜单栏

一个样式布局

只能有一个根标签,所以我们要用个column,把轮播和页面跳转,包起来。

4.分割器

相关推荐
liuyouzhang1 小时前
将基于Archery的web数据库审计查询平台封装为jdbc接口的可行性研究(基于AI)
前端·数据库
不吃香菜学java6 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
码事漫谈6 小时前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端
贵沫末7 小时前
python——打包自己的库并安装
开发语言·windows·python
这儿有一堆花7 小时前
前端三件套真的落后了吗?揭开现代 Web 开发的底层逻辑
前端·javascript·css·html5
文祐7 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
.Cnn7 小时前
JavaScript 前端基础笔记(网页交互核心)
前端·javascript·笔记·交互
zuowei28897 小时前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
醉酒的李白、7 小时前
Vue3 组件通信本质:Props 下发,Emits 回传
前端·javascript·vue.js
xiaohe078 小时前
超详细 Python 爬虫指南
开发语言·爬虫·python