主页面设置组件
import { MyButtonModifier } from '../datastore/MyButtonModifier';
@Entry
@ComponentV2
struct MainPage {
// 支持用状态装饰器修饰,行为和普通的对象一致
@Local modifier: MyButtonModifier = new MyButtonModifier();
build() {
Column() {
Button("Button")
.attributeModifier(this.modifier)
}
.width('100%')
}
}
新建页面构建属性
//默认态(Normal)、按压态(Pressed)、焦点态(Focused)、禁用态(Disabled)、选择态(Selected)
export class MyButtonModifier implements AttributeModifier<ButtonAttribute> {
applyNormalAttribute(instance: ButtonAttribute): void {
// instance为Button的属性对象,设置正常状态下属性值
instance
.backgroundColor('#17A98D')
.borderColor('#707070')
.borderWidth(2)
}
applyPressedAttribute(instance: ButtonAttribute): void {
// instance为Button的属性对象,设置按压状态下属性值
instance
.backgroundColor('#2787D9')
.borderColor('#FFC000')
.borderWidth(5)
}
applyFocusedAttribute(instance: ButtonAttribute): void {
// instance为Button的属性对象,设置焦点状态下属性值
instance
.backgroundColor(Color.Brown)
.borderColor(Color.Orange)
.borderWidth(9)
}
applyDisabledAttribute(instance: ButtonAttribute): void {
// instance为Button的属性对象,设置禁用状态下属性值
instance
.backgroundColor(Color.Gray)
.borderColor(Color.Black)
.borderWidth(1)
}
applySelectedAttribute(instance: ButtonAttribute): void {
// instance为Button的属性对象,设置选中状态下属性值
instance
.backgroundColor(Color.Red)
.borderColor(Color.Blue)
.borderWidth(3)
}
}