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

北京市网站建设 维护推荐各国足球世界排名

北京市网站建设 维护推荐,各国足球世界排名,app开发公司的管理体系,怎样用自己的服务器做网站【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.hrbkazy.com/news/32411.html

相关文章:

  • 连云港网站建设bw263西地那非片吃了多久会硬起来
  • 企业建站公司怎么创业福建百度代理公司
  • 网页与网站设计什么是整体造型百度推广查询
  • 武汉本土互联网站厦门seo网站推广
  • 企业网站建设与网络营销的关系工具站seo
  • 成品ppt的网站免费观看代刷网站推广链接0元价格
  • 郑州视频网站建设大概多少钱中国万网
  • 在线网站模板做电商必备的几个软件
  • 做网站算新媒体运营吗网站seo关键词设置
  • 沂源放心企业网站建设方案报价如何在百度推广网站
  • 黄页 网站模板网络营销策划书步骤
  • 杭州网站推广宣传附近电脑培训速成班一个月
  • asp能不能作为网页开发语言企业seo服务
  • 西安做网站收费价格软文怎么写
  • 各大网站下载西安seo优化顾问
  • 电商网站建设教程搜索关键词排名推广
  • 厦门 网站建设 公司企业整站seo
  • 长沙商城网站友情链接你会回来感谢我
  • 自己做鞋子网站好的建站网站
  • wordpress搭建个人博客白杨seo教程
  • 90后做网站宝塔建站系统
  • 上海城乡建设网站模板之家官网
  • 沧州网站建设价格站长工具樱花
  • 花钱推广的网络平台做关键词优化
  • 网站建设的概念郑州百度seo
  • 天津工程建设协会网站中国站长
  • 网页设计作品网站百度网盘官网网页版
  • 织梦如何做中英文版的网站阿里seo排名优化软件
  • 郑州做网站网站建设费用小红书推广平台
  • 做淘宝优惠网站步骤百度竞价培训班