HarmonyOS Next快速入门:通用属性

简介: 本教程以《HarmonyOS Next快速入门》为基础,涵盖应用开发核心技能。通过代码实例讲解尺寸、位置、布局约束、Flex布局、边框、背景及图像效果等属性设置方法。如`.width()`调整宽度,`.align()`设定对齐方式,`.border()`配置边框样式,以及模糊、阴影等视觉效果的实现。结合实际案例,帮助开发者掌握HarmonyOS组件属性的灵活运用,提升开发效率与用户体验。适合初学者及进阶开发者学习。

HarmonyOS Next快速入门##HarmonyOS应用开发##教育

点击跳转《HarmonyOS Next快速入门》视频教程

尺寸设置

.width(value: Length)    //设置组件宽度
.height(value: Length)    //设置组件高度
.size(value: SizeOptions)    //设置组件宽高尺寸
.padding(value: Padding | Length | LocalizedPadding)    //设置内边距
.margin(value: Margin | Length | LocalizedMargin)    //设置外边距

位置设置

.align(value: Alignment)     //设置容器元素绘制区域内的子元素的对齐方式
.direction(value: Direction)  //设置容器元素内主轴方向上的布局。
.position(value: Position | Edges | LocalizedEdges)  //绝对定位,确定子组件相对父组件的位置
.markAnchor(value: Position | LocalizedPosition)  //设置元素在位置定位时的锚点。
.offset(value: Position | Edges | LocalizedEdges)  //相对偏移,组件相对原本的布局位置进行偏移。
alignRules(alignRule: LocalizedAlignRuleOptions)  //指定设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效。该方法水平方向上以start和end分别替代原方法的left和right,以便在RTL模式下能镜像显示,建议使用该方法指定设置在相对容器中子组件的对齐规则。

布局约束

.aspectRatio(value: number)  //指定当前组件的宽高比,aspectRatio=width/height。
.displayPriority(value: number)  //设置当前组件在布局容器中显示的优先级。

Flex布局

.flexBasis(value: number | string)  //设置组件的基准尺寸。
.flexGrow(value: number)  //设置组件在父容器的剩余空间所占比例。
.flexShrink(value: number)  //设置父容器压缩尺寸分配给此属性所在组件的比例。当父容器为Column、Row时,需设置主轴方向的尺寸。
.alignSelf(value: ItemAlign)  //子组件在父容器交叉轴的对齐格式。

边框设置

.border(value: BorderOptions)    //设置边框样式
.borderStyle(value: BorderStyle | EdgeStyles)    //设置元素的边框线条样式
.borderWidth(value: Length | EdgeWidths | LocalizedEdgeWidths)    //设置边框的宽度
.borderColor(value: ResourceColor | EdgeColors | LocalizedEdgeColors)    //设置边框的颜色
.borderRadius(value: Length | BorderRadiuses | LocalizedBorderRadiuses)     //设置边框的圆角

背景设置

.backgroundColor(value: ResourceColor)    //设置组件背景色
.backgroundImage(src: ResourceStr | PixelMap, repeat?: ImageRepeat)    //设置组件的背景图片
.backgroundImageSize(value: SizeOptions | ImageSize)    //设置组件背景图片的宽高
.backgroundImagePosition(value: Position | Alignment)    //设置背景图的位置
.backgroundBlurStyle(value: BlurStyle, options?: BackgroundBlurStyleOptions)  //为当前组件提供一种在背景和内容之间的模糊能力,通过枚举值的方式封装了不同的模糊半径、蒙版颜色、蒙版透明度、饱和度、亮度。
.backdropBlur(value: number, options?: BlurOptions)  //为组件添加背景模糊效果,可以自定设置模糊半径和灰阶参数。
.backgroundEffect(options: BackgroundEffectOptions)  //设置组件背景属性,包含背景模糊半径,亮度,饱和度,颜色等参数。
.backgroundImageResizable(value: ResizableOptions)  //设置背景图在拉伸时可调整大小的图像选项。

图像效果

.blur(value: number, options?: BlurOptions)  //为组件添加内容模糊效果
.shadow(value: ShadowOptions | ShadowStyle)  //为组件添加阴影效果
.grayscale(value: number)  //为组件添加灰度效果。
.brightness(value: number)  //为组件添加高光效果。
.saturate(value: number)  //为组件添加饱和度效果。
.contrast(value: number)  //为组件添加对比度效果。
.invert(value: number | InvertOptions)  //反转输入的图像。
.sepia(value: number)  //将图像转换为深褐色。
.hueRotate(value: number | string)  //色相旋转效果。
.colorBlend(value: Color | string | Resource)  //为组件添加颜色叠加效果。
.linearGradientBlur(value: number, options: LinearGradientBlurOptions) //为组件添加内容线性渐变模糊效果。
.renderGroup(value: boolean)  //设置当前控件和子控件是否先整体离屏渲染绘制后再与父控件融合绘制。
.blendMode(value: BlendMode, type?: BlendApplyType)  //将当前控件的内容(包含子节点内容)与下方画布(可能为离屏画布)已有内容进行混合。

代码实例:UniversalAttributes

@Entry
@Component
struct UniversalAttributes {
   
  @State message: string = 'Universal Attributes ';

  build() {
   
    Column() {
   
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)

      Row(){
   
        Text('Size setting')
      }.backgroundColor(Color.Orange)
      .size({
   width:'100%',height:50})
      .width(50)
      .width(100) //The same attribute, the subsequent settings will overwrite the previous settings

      Row(){
   
        Text('Size setting')
      }.backgroundColor(Color.Green)
      .padding(10)
      .margin(10)

      Stack(){
   
        Text('Location setting')
      }.backgroundColor(Color.Orange)
      .size({
   width:'100%',height:50})
      .align(Alignment.TopStart)

      Row(){
   
        Text('Border settings')
      }.backgroundColor(Color.Orange)
      .padding(10)
      .margin(10)
      .border({
   width:1,color:Color.Red,radius:8,style:BorderStyle.Dashed})
      .borderWidth(5)
      .borderColor(Color.Green)
      .borderRadius(18)
      .borderStyle(BorderStyle.Dotted)

      Row(){
   
        Text('Background setting')
      }.height(100)
      .backgroundColor(Color.Orange)
      .backgroundImage($r('app.media.startIcon'))
      // .backgroundImageSize({width:'100%',height:'100%'})
      .backgroundImagePosition(Alignment.Center)
    }
    .height('100%')
    .width('100%')
  }
}
目录
相关文章
|
4天前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
46 0
|
编译器
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
本文介绍在三层架构中实现模块依赖的步骤。首先在产品定制层(features)的oh-package.json5文件中导入共享包依赖,如"basic":"file:../../commons/basic"。然后在产品层(products)的配置文件中同时导入公共能力层和产品定制层的依赖,示例展示了如何添加"basic"和"my"两个依赖项。通过这些配置,三层架构的各模块之间建立了完整的依赖关系。
86 0
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
|
11天前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
50 1
|
22天前
|
存储 开发者
鸿蒙Next仓颉开发语言中的数据类型总结分享
仓颉语言数据类型包括多种数字类型(Int、Float)、字符串(String)、数组(Array、ArrayList、ObservedArrayList)及HashMap。数字类型区分长度和精度,数组支持固定与动态操作,HashMap用于存储键值对。适合开发者快速掌握仓颉基础数据结构。#仓颉 #HarmonyOS
|
22天前
详解鸿蒙Next仓颉开发语言中的全屏模式
仓颉开发语言实现全屏模式教程:默认非全屏,需手动设置沉浸模式以占满屏幕。通过`setWindowLayoutFullScreen`开启全屏,并利用`getWindowAvoidArea`获取摄像头与导航条区域高度,结合AppStorage保存尺寸,适配界面布局,避免内容被遮挡。附屏幕尺寸获取方法及单位说明。
|
22天前
|
容器
鸿蒙Next仓颉语言开发实战教程:聊天列表
本文分享了 HarmonyOS 仓颉语言实现聊天页面布局的全过程,包括顶部导航栏、动态消息列表及底部输入框的设计与代码实现,详细讲解了上中下结构布局、消息方向区分、阴影设置等内容。
|
22天前
鸿蒙Next仓颉语言开发实战教程:消息列表
本教程分享了使用仓颉语言开发商城应用中的消息列表页面,包含导航栏布局、消息筛选列表及消息内容列表的实现。通过Row、Scroll、List和ForEach等组件,完成页面结构搭建与数据循环渲染,适合初学者实战练习。
|
20天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:电影App
周末好!本文分享使用仓颉语言重构ArkTS实现的电影App案例,对比两者在UI布局、组件写法及语法差异。内容包括页面结构、列表分组、分类切换与电影展示等。通过代码演示仓颉在HarmonyOS开发中的应用。##仓颉##ArkTS##HarmonyOS开发
|
20天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
20天前
|
存储 IDE 定位技术
【HarmonyOS 5】鸿蒙组件&模板服务详解 - 助力高效开发的利器
在移动应用开发领域,效率与质量始终是开发者追求的核心目标。鸿蒙系统作为新兴的操作系统,为开发者提供了丰富且强大的开发资源,其中鸿蒙组件&模板服务更是成为开发者快速构建高质量应用的得力助手。
73 0