HarmonyOS 鸿蒙Next 点击当前Image的时候,其他Image要恢复默认图标

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 点击当前Image的时候,其他Image要恢复默认图标 点击Image组件,循环展示三个图标,且除了当前点击的图标以外,其他图标要恢复为默认图标?

2 回复
@Entry
@Component
struct TestPage {
  //点击的图片
  @Provide selectNumber: number = 0
  //要显示的组件大小
  @Provide arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  //需要循环显示的图片数组
  @Provide imgArray: Resource[] = [$r('app.media.icon_dianzan_2'), $r('app.media.icon_dianzan_3')]

  build() {
    Column() {
      Row() {
      }.height(500)

      ForEach(
        this.arr,
        (item: number) => {
          itemRank({ myNumber: item })
        },
        (item: number) => item.toString()
      )
    }.width('100%').height('100%')
  }
}

@Component
struct itemRank {
  //自己的位置
  @Prop myNumber: number;
  //父组件选中的位置
  @Consume selectNumber: number;
  //需要循环显示的图片数组
  @Consume imgArray: Resource[];
  //点击自己后图片地址下标
  @State imgSelect: number = 0

  build() {
    Row() {
      Text(`位置:${this.myNumber}`).fontSize(21)
      if (this.myNumber === this.selectNumber) {
        //点击的为自己,自己开始切换图片
        Image(this.imgArray[this.imgSelect%this.imgArray.length]).width(20).height(20)
      } else {
        //点击的不是自己,显示默认图片
        Image($r('app.media.icon')).width(20).height(20)
      }
    }.onClick(() => {
      //点击的为自己,自己开始切换图片
      if (this.myNumber === this.selectNumber) {
        this.imgSelect = this.imgSelect + 1
      }
      //点击的为自己,更换父组件选中的子组件序号
      this.selectNumber = this.myNumber
    })
  }
}

更多关于HarmonyOS 鸿蒙Next 点击当前Image的时候,其他Image要恢复默认图标的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,当你实现点击当前Image时其他Image恢复默认图标的逻辑时,可以通过以下方式操作:

首先,确保你的所有Image组件都有一个默认图标的状态和一个被点击后的状态。你可以通过定义不同的资源文件(如图片)来实现这两种状态。

在你的代码中,可以维护一个当前被点击Image的引用。当用户点击某个Image时,首先检查这个引用是否指向当前被点击的Image:

  • 如果指向的是同一个Image,那么你可以切换这个Image到它的另一种状态(例如,从被点击状态切换回默认状态)。
  • 如果不是同一个Image,那么先将当前被点击的Image切换回默认状态,然后更新这个引用到新的被点击Image,并将其切换到被点击状态。

这个过程通常涉及事件监听和状态管理。你可以使用HarmonyOS提供的事件处理机制(例如,点击事件监听)来捕捉用户的点击行为,并通过数据绑定或状态管理逻辑来更新UI。

请注意,具体实现可能依赖于你的应用架构和UI框架。上述描述提供了一个基本的思路,你可能需要根据实际情况进行调整。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部