🚀 鸿蒙开发入门必看!30 分钟掌握 ArkUI 界面开发

     你是不是刚开始学习 鸿蒙开发,却不知道如何下手?别担心!这篇文章将带你:
✨ 从零认识 ArkUI 组件和布局
✨ 学会用 Text、Button、Image 等组件快速搭建界面
✨ 通过完整案例,实战一个小型 新闻卡片界面

读完之后,你就能快速写出自己的第一个鸿蒙应用界面,真正做到 学完即用 💻!

✨ 本文基于课堂笔记 + 实操经验整理,适合零基础入门鸿蒙 ArkUI 界面开发的同学。内容涵盖 开发环境搭建、基础组件、容器组件、属性方法、常见问题处理、完整案例。配合示例代码,帮助你快速掌握鸿蒙应用界面开发!同时,每个知识点会附上定义和个人理解,便于加深印象。

 ArkUI概述
ArkUI是华为为HarmonyOS应用开发设计的声明式UI开发框架,提供简洁高效的UI描述语法与状态管理机制,支持跨设备适配。其核心特点包括声明式编程、响应式数据绑定、高性能渲染及统一的开发范式。

核心特性
声明式开发:通过TS/JS或eTS(extended TypeScript)语言以接近自然语义的方式描述UI布局与交互逻辑,减少冗余代码。

跨平台适配:基于“一次开发,多端部署”理念,自动适配手机、平板、智能穿戴等不同设备屏幕尺寸与交互模式。

高性能渲染:采用轻量级渲染引擎和高效的差异更新算法(如Virtual DOM),确保复杂界面流畅渲染。

状态管理:内置响应式数据绑定机制,UI随数据变化自动更新,简化双向数据流处理。

开发语言支持
eTS:ArkUI主推语言,扩展了TypeScript的装饰器能力,支持@Component、@State等注解。
JS/TS:兼容标准JavaScript/TypeScript语法,适合快速迁移现有Web项目。
典型应用场景
多设备协同应用:如分布式音乐播放器,界面自适应不同终端。
高性能动画:利用ArkUI的动画API实现流畅转场效果。
实时数据展示:通过状态管理快速更新股票行情、天气信息等动态内容。
代码示例(eTS语法)

 

@Component
struct HelloWorld {
  @State message: string = 'Hello ArkUI!'
 
  build() {
    Column() {
      Text(this.message)
        .fontSize(20)
      Button('Click Me')
        .onClick(() => {
          this.message = 'Button Clicked!'
        })
    }
  }
}

学习资源

官方文档:HarmonyOS开发者官网提供完整ArkUI组件库与API指南。
社区支持:开源社区如Gitee、CSDN有大量实战案例与问题讨论。
ArkUI通过降低UI开发复杂度,助力开发者高效构建HarmonyOS全场景应用。

🛠️ 一、开发环境准备
定义:鸿蒙系统开发主要依赖官方 IDE —— DevEco Studio,基于 ArkTS(方舟 TypeScript)语言来构建 UI 界面。

个人理解:就像 Android 需要 Android Studio 一样,鸿蒙开发的“家”就是 DevEco Studio,一切代码、调试、模拟器都在这里完成。

示例:Hello ArkUI

@Entry
@Component
struct Index {
  @State message: string = "Hello ArkUI!"
 
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(20)
          .fontWeight(FontWeight.Bold)
          .fontColor(Color.Blue)
      }
    }
  }
}

📐 二、布局基础
定义:ArkUI 界面由组件构成,分为 基础组件(如 Text、Image)和 容器组件(如 Row、Column,用来组织布局)

个人理解:组件就像“乐高积木”,每个小方块都有特定功能;容器则像“底板”,决定乐高积木怎么摆放(横排还是竖排)。

请实现右侧的实例,在界面上表现出来

@Entry
@Component
struct Demo1 {
//构造 + 界面
  build() {
    //   布局思路:先排版,再内容
    Column() {
      Text('小说简介').fontSize(24).fontWeight(FontWeight.Bold)
      Text('都市')
      Text('生活')
      Text('情感')
      Text('男频')
    }
  }
}

🎨 三、常见属性方法
1.组件属性方法
定义:属性方法用于控制组件的样式和行为,例如宽高、字体大小、颜色、溢出效果。

个人理解:属性方法相当于“化妆工具”,同一个人(组件)可以通过不同化妆手法(属性)展现不同的风格。
    •    .width(value):宽度
    •    .height(value):高度
    •    .backgroundColor(Color.xxx):背景色
    •    .fontSize(value):字体大小
    •    .fontWeight(FontWeight.Bold):加粗(数值取在100-900,默认400)
    •    .fontColor(Color.xxx):字体颜色
    •    .lineHeight(value):行高
    •    .textOverflow(TextOverflow.Ellipsis):溢出省略
    •    .maxLines(n):最大显示行数

例:在上一个例子的基础上,加入颜色和行高的设定。

@Entry
@Component
struct Demo2 {
  build() {                                                                                          //布局思路:先排版
Column(){
  Text('小说简介')
      .width('100%')
      .height(40)
      .fontSize(20)
      .fontWeight(700) //100-900的数字  加粗700 默认400
  Row(){
      Text('都市')
        .width(150)
        .height(60)//设置居中和每行的行高
        .backgroundColor(Color.Orange)//设置颜色,可选预设
      Text('生活')
        .width(150)
        .height(60)
        .backgroundColor(Color.Pink)
      Text('情感')
        .width(150)
        .height(60)
        .backgroundColor(Color.Yellow)
      Text('男频')
        .width(150)
        .height(60)
        .backgroundColor(Color.DeepOrange)
    }
   .width('100%')
  }
 .width('100%')
}

2.文本颜色


例:请完成右侧UI

3.文本溢出省略号


例:完成右侧文字溢出省略号

示例:溢出省略

 // 构建界面的方法
  build() {
    Column() {
      // 第一个文本组件,显示'HarmonyOS开发初体验'
      Text('HarmonyOS开发初体验')
        .width('100%') // 设置宽度为父容器的100%
        .lineHeight(50) // 设置行高为50
        .fontSize(20) // 设置字体大小为20
        .fontWeight(FontWeight.Bold); // 设置字体为粗体
 
      // 第二个文本组件,显示关于方舟开发框架的描述
      Text('方舟开发框架(简称ArkUI)为HarmonyOS应用的UI开')
        .width('100%') // 设置宽度为父容器的100%
        .lineHeight(24) // 设置行高为24
        .textOverflow({
          overflow: TextOverflow.Ellipsis // 设置文本溢出时显示省略号
        })
        .maxLines(1); // 设置最大显示行数为1,配合textOverflow实现省略效果
    }
    .width('100%'); // 设置Column容器的宽度为父容器的100%
  }
}

🖼️ 四、Image 图片组件
定义:Image 用于在界面中加载和显示图片,可以是网络图片或本地资源。

个人理解:就像给文章插图一样,图片是 UI 界面的“眼睛”,让界面更直观。
    •    加载网络图片:

Image('https://www.itheima.com/logo.png')
  .width(100)
  .height(100)

  •    加载本地图片(需放在 media 目录):

Column() {
  Image($r('app.media.product'))
    .width(120)
    .height(120)
}

⌨️ 五、输入框与按钮
定义:TextInput 提供文本输入功能,Button 用于点击交互,常见于表单或登录页面。

个人理解:输入框是“对话窗口”,按钮是“执行开关”,二者配合能实现人机交互的核心功能。

特殊情况

示例:登录界面

@Entry
@Component
struct LoginPage {
  build() {
    Column({ space: 10 }) {
      TextInput({ placeholder: '请输入用户名' })
        .width('80%')
 
      TextInput({ placeholder: '请输入密码', type: InputType.Password })
        .width('80%')
 
      Button('登录')
        .onClick(() => { console.log('登录成功') })
    }
    .width('100%')
    .height('100%')
    .padding(20)
  }
}

📰 六、案例实战:新闻信息卡片
定义:通过多个组件的组合,实现一个实际界面效果(新闻卡片 UI),展示标题、来源、评论数和简介。

个人理解:案例就像“练武”,单个动作(组件)练熟后,必须组合成“套路”(完整 UI)才能真正上手。

@Entry
@Component
struct NewsCard {
  build() {
    Column() {
      Text('今日头条')
        .fontSize(24)
        .fontWeight(FontWeight.Bold)
        .fontColor(Color.Red)

      Row() {
        Text('新华社')
          .fontColor('#3c3c3c')
        Text('4680评论')
          .fontColor('#a1a1a1')
      }.width('100%')

      Text('华为 HarmonyOS 正式版本上线,性能全面提升...')
        .width('100%')
        .fontSize(18)
        .lineHeight(26)
        .textOverflow(TextOverflow.Ellipsis)
        .maxLines(2)
    }
    .padding(20)
    .width('100%')
  }
}

🏆 七、总结

通过本文我们学习了:
    1.    🛠️ 开发环境(定义:工具和语言;个人理解:鸿蒙的“家”)
    2.    📐 组件体系(定义:UI 的基本单元;个人理解:像乐高积木)
    3.    🎨 属性方法(定义:控制样式;个人理解:化妆工具)
    4.    🖼️ 图片组件(定义:加载图片;个人理解:UI 的眼睛)
    5.    ⌨️ 输入框与按钮(定义:交互核心;个人理解:对话 + 开关)
    6.    📰 案例实战(定义:综合应用;个人理解:练武套路)

学习路径:从 Text → 容器组件 → Image → 输入框与按钮 → 实战案例。
下一篇文章我将带大家学习 ArkUI 页面跳转与路由管理,敬请期待!🔥

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐