最近开发鸿蒙,刚接触难免二和尚摸不着头脑,尤其是样式......
背景
在做银行卡显示的一个小需求时:
每个Text都需要设置fontColor:'#FFFFFF"
想着是否可以简单点
解决历程
思路一:(拒绝)
使用@Styles 提取封装公共样式(感觉如果样式多的时候较为方便,就一个字体颜色样式大可不必)
思路二:(采纳)
使用@Builder封装函数传参(感觉很是不错,相当于封装了一个白色的Text直接用)
PS:我还加了fontSize这个参数,嘿嘿
然而,发现点击小眼睛显示完整数据时没有反应(点眼睛没用了)
原来是因为:this问题,我传入的text文本content有的是三元表达式this.xxx ? xx : xx
最终解决方案:使用@Builder升级版
最后,点击小眼睛也可以正常使用啦!
新的疑惑
- 使用whiteText({content:xxx,size:xx})时不能直接在外面再.width()等设置其他样式了,在想是否有更加灵活的解决方法。
- 发现Text设置透明样式opacity时整体透明(包括文字、背景色),而backgroundColor里又似乎不能使用ragb形式的颜色,在Text外面套了一个Row在Row上设置背景色及透明最后仍然是整体透明......所以在鸿蒙开发中怎样才能实现仅Text背景色透明而字体颜色不透明呢?
backgroundColor可以使用rgba()!!! 对不起,错怪你了,鸿蒙。。。
一些小九九:
鸿蒙啊,感觉真的写起来有点麻烦,希望写多了能够熟能生巧......
鸿蒙里对于类型的要求比TS要严格,不能简单的使用any或者Object,必须得用interface啥的定义一波类型......
ForEach()也很神奇......啥啥都得string比如key
Resource类型转string啥的也很神奇......