鸿蒙小练习

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.分割器

相关推荐
zhanghaha131427 分钟前
Python语言基础:4_数据类型转换
java·前端·python
kyriewen33 分钟前
别再写useMemo了——2026年这5个React性能优化已经是反模式
前端·react.js·ai编程
OpenTiny社区35 分钟前
TinyRobot v0.5.0 新版本强在哪?
前端·vue.js·github
奇牙coding38 分钟前
gpt-5.6-sol 接入指南:reasoning_effort 参数配置、推理链验证与常见报错排查
前端·css·gpt·ai
larance1 小时前
机器学习特征预处理之标准化/归一化
开发语言·python·机器学习
sugar__salt1 小时前
Vue.js 前置知识:ES6+ 核心特性完全指南
前端·javascript·vue.js·vue·es6
农村小镇哥1 小时前
C#中的字符串格式化
服务器·开发语言·c#
雪隐1 小时前
个人电脑玩AI-10让5060 Ti给你打工——我让 Claude Code 喝上了本地杂粮:Ternary-Bonsai-27B 部署历险记
前端·人工智能·后端
Bigger1 小时前
我受够了每天问“今天吃什么”,于是做了个 AI 菜单工具
前端·人工智能·agent
邢行行2 小时前
记一次 Three.js 踩坑:小球渲染出现诡异黑斑?原因竟然是这样...
前端