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 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
563 61
|
5月前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
235 1
|
5月前
|
存储 负载均衡 数据库
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
本文介绍基于华为AGC的端云一体化开发流程,涵盖项目创建、云函数开通、应用配置及DevEco集成。重点讲解云函数的编写、部署、调用与传参,并涉及环境变量设置、负载均衡、重试机制与熔断策略等高阶特性,助力开发者高效构建稳定云端服务。
528 1
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
|
5月前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
256 1
|
5月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
440 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
5月前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段三
本文介绍了UI开发中的样式复用与组件构建技术,涵盖@Extend、@Styles和@Builder的使用方法,并通过Swiper轮播、Scroll滚动、Tabs导航等常用组件实现典型界面效果,结合生肖抽卡、小米轮播、回顶按钮等案例,展示实际应用技巧。
163 1
|
5月前
|
传感器 监控 安全
HarmonyOS NEXT 5.0 的星闪(NearLink)开发应用案例
V哥分享HarmonyOS NEXT 5.0星闪开发实战,涵盖智能车钥匙无感解锁与工业传感器监控。低延迟、高可靠,代码完整,速来学习!
741 0
|
8月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
4月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
451 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
4月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
433 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章