主页面设置组件
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)}
}