HarmonyOS 鸿蒙Next 点击当前Image的时候,其他Image要恢复默认图标
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