HarmonyOS 如何实现通用样式

一、能否像前端添加class一样,一个通用css样式(分全局和组件内两种情况),供多个组件使用,参考:

.normal-font{
  font-size: 16px;
  text-align: center;
  color: #36363A;
  margin: 0 auto 10px;
}

<div class="class1 normal-font">666</div>
  <div class="class2 normal-font">123</div>
  <div class="class3 normal-font">678</div>

二、能否直接把某些样式给到包裹层,比如字体字号颜色之类,目前容器组件是不能添加字体字号样式的,但是容器内的基础组件使用的又是相同的样式,这样代码很冗余以下text组件的样式每次都要写一遍一样的

Row(){
  Row(){
    Text('文案1')
      .fontColor($r('app.color.black_36'))
      .fontSize(15)
    ......//其他组件
  }
  Row(){
    Text('文案2')
      .fontColor($r('app.color.black_36'))
      .fontSize(15)
    ......//其他组件
  }
  Row(){
    Text('文案3')
      .fontColor($r('app.color.black_36'))
      .fontSize(15)
    ......//其他组件
  }

}
.fontSize(15) //报错:Property 'fontColor' does not exist on type 'RowAttribute'. <ArkTSCheck>
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

一、能否像前端添加class一样,一个通用css样式(分全局和组件内两种情况),供多个组件使用–使用@Styles装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。注意:当前@Styles仅支持通用属性和通用事件。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-style-V5

二、能否直接把某些样式给到包裹层–由于fontSize不是通用样式,所以没法写在容器组件上。当前的方法是在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式。通过@Extend组合样式,可以使得代码更加简洁,增强可读性。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-extend-V5#使用场景

分享
微博
QQ
微信
回复
2天前
相关问题
如何实现通用的吸顶效果
700浏览 • 1回复 待解决
HarmonyOS 如何实现气泡样式
37浏览 • 1回复 待解决
HarmonyOS 如何实现动态样式
8浏览 • 1回复 待解决
应用通用获焦及走焦方式如何实现
2014浏览 • 1回复 待解决
HarmonyOS 如何实现券组件的挖空样式
63浏览 • 1回复 待解决
openharmony 的ets和js 的Api能否实现通用
5522浏览 • 1回复 待解决
HarmonyOS 需要“登录页面”通用能力
16浏览 • 1回复 待解决
求大佬告知通用组件如何打包
680浏览 • 1回复 待解决
组合样式怎样去实现导入导出
1934浏览 • 1回复 待解决
如何实现一个仪表盘样式的组件?
442浏览 • 1回复 待解决
鸿蒙怎么实现UI控件样式复用 ?
7785浏览 • 3回复 待解决
HarmonyOS 如何设置控件样式
332浏览 • 1回复 待解决
HarmonyOS 如何全局复用样式
437浏览 • 1回复 待解决