HarmonyOS 如何提取UI的公共属性,达到共用目的?

假设有两个Button,都需要设置以下属性:

.width("")  
.height("")  
.fontSize("")  
.fontColor()  
.margin({ })  
.linearGradient({ })  
.borderRadius("")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

那么如何将这些属性提取出来,然后分别让这两个Button引用,这样就可以避免重复编写代码。

HarmonyOS
2024-10-17 11:10:56
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

attributeModifier当前支持封装一个样式导出供其他组件使用,示例如下:

//CommonAttribute.ets  
export class TitleTextAttribute implements AttributeModifier<TextAttribute> {  
  applyNormalAttribute(instance: TextAttribute): void {  
    instance.backgroundColor(Color.Black)  
    instance.fontColor(Color.White)  
    instance.fontSize(40)  
  }  
}
//Index.ets  
import { TitleTextAttribute } from './CommonAttribute'  
@Entry  
@Component  
struct Index {  
  @State modifier: TitleTextAttribute = new TitleTextAttribute()  
  build() {  
    Row() {  
      Column() {  
        Text('Hello World')  
          .attributeModifier(this.modifier) }  
      .width('100%')  
    }  
    .height('100%')  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
分享
微博
QQ
微信
回复
2024-10-17 16:09:18
相关问题
公共样式提取到一个公共文件中
1013浏览 • 1回复 待解决
HarmonyOS UI组件提供setAlpha属性
487浏览 • 1回复 待解决
HarmonyOS 如何实现公共customdialog
449浏览 • 1回复 待解决
嵌套Class属性变化无法触发UI渲染
1043浏览 • 1回复 待解决
HarmonyOS 自动签名能否多人共用
1033浏览 • 1回复 待解决
如何获取HarmonyOS目的SHA1?
6265浏览 • 1回复 待解决
HarmonyOS 设计约束通过标准目的
618浏览 • 1回复 待解决
HarmonyOS 懒加载列表更改属性UI不刷新
801浏览 • 1回复 待解决