HarmonyOS 关于ArkTS UI样式文件的疑问

在API9中,ArkTS UI所创建的样式文件无法跨文件使用。这个在后续的ArkTS UI中是否有支持呢?

HarmonyOS
2024-10-21 10:40:18
1212浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

当前已有能力实现样式跨文件复用,类似其他平台的viewModifier。

//定义样式文件,MyImageModifier .ets  
import { ImageModifier } from “@ohos.arkui.modifer”;  
class MyImageModifier extends ImageModifier {  
  public syncModeValue?: boolean  
  public cacheModeValue?: boolean  
  override applyNormalAttribute(instance: ImageAttribute): void {  
    super.applyNormalAttribute(instance)  
    // extend logics  
  }  
  syncMode(isSync: boolean) : MyImageModifier {  
    this.syncModeValue = isSync  
    return this  
  }  
  cacheMode(isCached: boolean) : MyImageModifier {  
    this.cacheModeValue = isCached  
    return this  
  }  
}  
//封装自定义组件@Component  
struct MyImage {  
  @Link modifier: MyImageModifier  
  @State src: string  
  build() {  
    Image(this.src)  
      .attributeModifier(this.modifier)  
  }  
  aboutToAppear() {  
    if (this.modifier.syncModeValue) {  
      // do something  
    }  
    if (this.modifier.cacheModeValue) {  
      // do something  
    }  
  }  
}  
//使用自定义组件  
@Entry @Component  
struct Index {  
  @State myImageModifier: MyImageModifier =  
    new MyImageModifier()  
      .syncMode(true)  
      .cacheMode(true)  
      .autoResize(true)  
      .renderMode(ImageRenderMode.Template)  
      .width(100)  
  isSync: boolean = false  
  
  build() {  
    Row() {  
      MyImage({ modifier: this.myImageModifier, src: $r(‘xxxx’) })  
      Button(“Click”).onClick(() => {  
        isSync = !isSync  
        this.myImageModifier.syncMode(isSync)  
      })  
    }  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
分享
微博
QQ
微信
回复
2024-10-21 15:13:49


相关问题
HarmonyOS 关于deliveryWithInstall疑问
1703浏览 • 1回复 待解决
HarmonyOS关于RichText疑问
1843浏览 • 1回复 待解决
HarmonyOS 关于混淆疑问
1036浏览 • 1回复 待解决
HarmonyOS 关于手动签名疑问
1545浏览 • 1回复 待解决
HarmonyOS UI样式不能封装至其他文件
644浏览 • 1回复 待解决
HarmonyOS 关于NavPathStack疑问
971浏览 • 1回复 待解决
HarmonyOS 关于DES加解密疑问
885浏览 • 1回复 待解决
HarmonyOS 关于半模态转场疑问
894浏览 • 1回复 待解决
关于Wearable开发几个疑问
8453浏览 • 2回复 待解决
关于鸿蒙应用开发疑问?
6179浏览 • 1回复 待解决
HarmonyOS 关于AvPlayer中usage问题疑问
994浏览 • 1回复 待解决
关于鸿蒙next相关疑问
330浏览 • 1回复 待解决
关于鸿蒙next相关疑问
338浏览 • 0回复 待解决
关于鸿蒙next相关疑问
327浏览 • 0回复 待解决
关于鸿蒙next相关疑问
306浏览 • 0回复 待解决
关于鸿蒙next相关疑问
311浏览 • 0回复 待解决
关于鸿蒙next相关疑问
430浏览 • 1回复 待解决
关于鸿蒙next相关疑问
361浏览 • 0回复 待解决
关于鸿蒙next相关疑问
327浏览 • 0回复 待解决
关于鸿蒙next相关疑问
304浏览 • 0回复 待解决
关于鸿蒙next相关疑问
318浏览 • 0回复 待解决
关于鸿蒙next相关疑问
503浏览 • 1回复 待解决
关于鸿蒙next相关疑问
335浏览 • 0回复 待解决
关于鸿蒙next相关疑问
503浏览 • 1回复 待解决
关于鸿蒙next相关疑问
347浏览 • 0回复 待解决