当前位置: 首页 > news >正文

海南海口网站开发公司电商小程序源码

海南海口网站开发公司,电商小程序源码,智慧团建团员登录网站,湖南微信网站公司【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, Styles 前言 在鸿蒙中UI开发经常需要对控件样式进行统一的封装,在API早前版本,一般是通过 Styles进行样式封装复用: Entry Component struct Index {build() {Column(…

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, @Styles

前言

在鸿蒙中UI开发经常需要对控件样式进行统一的封装,在API早前版本,一般是通过 @Styles进行样式封装复用:




struct Index {build() {Column() {Text("开启广播").TxtStyle()}.height('100%').width('100%')} TxtStyle(){.width(px2vp(300)).height(px2vp(100)).backgroundColor(Color.Blue).margin({top: px2vp(100)}).border({width: px2vp(2),color: Color.Blue,radius: px2vp(50)})}
}

@Styles从API8开始支持,目前从API Version 11开始支持另一种写法attributeModifier,可根据开发者需要动态设置属性。

因为@Styles的使用限制,所以官方才新增了attributeModifier。
1.样式属性并不全面,font相关属性无法设置:
在这里插入图片描述
2.@Styles修饰的函数只能在当前类中使用,无法跨界面使用。
不过在单一页面内进行复用的简单样式,也建议使用@Styles进行样式复用。

AttributeModifier的使用

从API 11开始,所有UI控件都可以设置attributeModifier属性:
在这里插入图片描述
针对不同的UI控件,有对应的基类Modifier:(足足79个!!!)
在这里插入图片描述
以Button为例,封装按钮的样式,我们需要找到ButtonAttribute,实现AttributeModifier接口。

ButtonAttribute样式接口会提供五种样式回调:
applyNormalAttribute 默认样式回调,
applyPressedAttribute 按下样式回调,
applyFocusedAttribute 获得焦点样式回调,
applyDisabledAttribute 不可点击样式回调,
applySelectedAttribute 被选择样式回调。


class CommonBtnModifier implements AttributeModifier<ButtonAttribute> {applyNormalAttribute(instance: ButtonAttribute): void {instance.backgroundColor(Color.Blue)}applyPressedAttribute(instance: ButtonAttribute): void {instance.backgroundColor(Color.Red)}
}

一般情况下,我们不需要处理这么多样式状态,只需要处理默认态即可,那只用继承ButtonModifier即可:

import { ButtonModifier } from '@kit.ArkUI'class CommonBtnModifier implements AttributeModifier<ButtonModifier> {applyNormalAttribute(instance: ButtonAttribute): void {instance.backgroundColor(Color.Blue)}
}

只需要实现默认态样式回调:
在这里插入图片描述
当我们实现了样式封装类后,只需要在UI调用的类创建对象,赋值给控件即可实现样式的统一:

import { CommonBtnModifier } from '../common/MyButtonModifier';

struct TextPage { message: string = 'Hello World';build() {RelativeContainer() {Button(this.message)// 如果你有多个控件,都需要该样式赋值,可以创建全局对象进行赋值.attributeModifier(new CommonBtnModifier())}.height('100%').width('100%')}
}import { ButtonModifier } from '@kit.ArkUI'
// export 添加后,才能导入到其他类使用。不加是无法引入该类。
export class CommonBtnModifier implements AttributeModifier<ButtonModifier> {applyNormalAttribute(instance: ButtonAttribute): void {instance.backgroundColor(Color.Blue)}
}

DEMO示例:

Index 界面UI

import { CommonTextModifier } from '../common/CommonTextModifier'

struct Index {txtModifier: CommonTextModifier = new CommonTextModifier()onClickStart = ()=>{}build() {Column() {Text("开启广播").attributeModifier(this.txtModifier).onClick(this.onClickStart)Text("关闭广播").fontSize(px2fp(50)).onClick(this.onClickStart).attributeModifier(this.txtModifier).onClick(this.onClickStart)}.height('100%').width('100%')}
}

文本控件通用样式封装

import { TextModifier } from '@kit.ArkUI'/*** 文本控件通用样式*/
export class CommonTextModifier implements AttributeModifier<TextModifier> {applyNormalAttribute(instance: TextModifier): void {instance.fontSize(px2fp(50)).fontColor(Color.White).width(px2vp(300)).height(px2vp(100)).backgroundColor(Color.Blue).textAlign(TextAlign.Center).margin({top: px2vp(100)}).border({width: px2vp(2),color: Color.Blue,radius: px2vp(50)})}
}
http://www.yayakq.cn/news/10848/

相关文章:

  • 网站建设完成报告建筑专业网站
  • 淄博网站客户防封电销系统
  • 信息发布网站推广技巧网站自动加水印
  • 网站设计项目总结广告设计公司如何壮大
  • 推广网站推广谁会写网站代码
  • 品牌网站开发价格18元套餐
  • 天津网站设计公司排名如何免费制作企业网站
  • 资源分享类网站模板wordpress主题模板 教育
  • 长春哪里做网站营销网站建设优化
  • 浙江企业响应式网站建设设计厦门人才网官网
  • 企业宣传网站怎么做百度推广联盟
  • 网站建设 实施计划书手机网站开发视频
  • 商户如何做h5商城网站是什么济南集团网站建设公司好
  • androidstudio手机版下载广州seo工作
  • 社区类网站有哪些一家专门做特卖的网站是什么
  • 网站效果图设计方案宁夏建设局网站
  • 网站建设的费用报价深圳集团网站建设哪家好
  • 郑州市网站和公众号建设公众号登录怎么退出
  • 福建宏盛建设集团有限公司网站wordpress 远程设置
  • 太原网站制作哪家好初学者网站建设
  • 网站建设框架怎么做东莞黄页顺企网
  • 官方网站建设公司百度怎么发帖子
  • 如何看出一个网站优化的是否好百度搜索大数据
  • 汾阳做网站的公司建设自己的电影网站
  • 购物网站建设论文答辩深圳市中心在哪个位置
  • 网站建设经费保障百度小说排行榜风云榜
  • 网站开发哪里安全最近消息报道
  • 河南两学一做网站效果图怎么做出来的
  • 电子商务网站建设需要做好哪些准备6局域网建设个人网站
  • 网站开发新技术探索什么网站可以免费发广告