HarmonyOS 鸿蒙Next 按压态设置失效
HarmonyOS 鸿蒙Next 按压态设置失效
Text(item.emoji + item.title)
.backgroundColor("#f5f5f5")
.borderRadius(8)
.fontColor("#555555")
.fontSize(13)
.stateStyles({
pressed: {
.backgroundColor(Color.Black)
},
})
这个按压态为什么不生效呢?还是说需要调用ontouch方法进行操作?
更多关于HarmonyOS 鸿蒙Next 按压态设置失效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
@State num: number[] = [1, 2, 3, 4, 5, 6,7,8];
scroller: Scroller = new Scroller()
scrollTimer: number = 0
private xlength: number = 0
build() {
Navigation() {
this.recommendWordContent()
}
.hideTitleBar(true)
.onAppear(() => {
this.startScroll()
}).onDisAppear(() => {
this.stopScroll()
}).onNavBarStateChange((visible) => {
if (visible) {
this.startScroll()
} else {
this.stopScroll()
}
})
}
@Builder
recommendWordContent() {
WaterFlow({ scroller: this.scroller }) {
ForEach(this.num, (item: number, index: number) => {
FlowItem() {
this.recommendWordItem(item)
// this.recommendWordItem(3)
}
})
}
.layoutDirection(FlexDirection.Row)
.rowsTemplate("1fr")
.id('recommendWord')
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
start: { anchor: '__container__', align: HorizontalAlign.Start },
end: { anchor: '__container__', align: HorizontalAlign.End }
})
.offset({ y: "7%" })
.height(120)
}
@Builder
recommendWordItem(item: number) {
Text(item.toString())
.backgroundColor("#f5f5f5")
.borderRadius(8)
.height(36)
.fontColor("#555555")
.fontSize(13)
.padding({
top: 9,
bottom: 9,
left: 12,
right: 12
})
.margin(6)
.onClick(() => {
})
.stateStyles({
pressed: {
.backgroundColor(Color.Black)
// .fontColor(Color.Red)
},
})
}
private startScroll() {
if (this.scrollTimer>0){
clearInterval(this.scrollTimer)
}
this.scrollTimer = setInterval(() => {
if (this.scroller.isAtEnd()) {
this.xlength = -0.2
} else if (this.scroller.currentOffset()?.xOffset == 0) {
this.xlength = 0.2
}
this.scroller.scrollBy(this.xlength, 0)
}, 20)
}
private stopScroll() {
if (this.scrollTimer > 0) {
clearInterval(this.scrollTimer)
}
}
}
更多关于HarmonyOS 鸿蒙Next 按压态设置失效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,按压态设置失效可能源于多个因素,包括但不限于以下几个方面:
-
事件监听未正确设置:确保按压事件(如
onPress
或onLongPress
)已在组件上被正确监听和注册。 -
样式定义缺失:按压态通常需要特定的样式定义,如背景色变化,检查是否在CSS或样式文件中定义了这些按压态样式。
-
组件属性限制:部分组件可能不支持按压态,或按压态的启用有特定条件,查阅官方文档确认组件支持情况。
-
系统或版本问题:确认你的HarmonyOS系统版本是否支持按压态功能,以及是否存在已知的bug。
-
冲突或覆盖:其他样式或脚本可能覆盖了按压态设置,检查是否有全局样式或脚本影响了按压态表现。
-
父组件影响:父组件的某些属性或样式可能阻止了子组件按压态的触发,检查父组件的相关设置。
解决上述问题后,如果按压态设置仍然失效,请直接联系官网客服进行进一步排查。官网地址是:https://www.itying.com/category-93-b0.html ,他们将提供更专业的技术支持和解决方案。