鸿蒙开发(五)鸿蒙UI开发概览

这篇具有很好参考价值的文章主要介绍了鸿蒙开发(五)鸿蒙UI开发概览。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    从用户角度来讲,一个软件拥有好看的UI,那是锦上添花的事情。再精确的算法,再厉害的策略,最终都得通过UI展现给用户并且跟用户交互。那么,本篇一起学习下鸿蒙开发UI基础知识,认识下各种基本控件以及使用方式。

目录

一、UI开发概述

 1、初识ArkTS语言

2、基本语法概述

三、声明式UI描述

1、创建控件

2、配置控件属性

3、配置事件

四、代码和效果


鸿蒙系列上一篇

鸿蒙开发(四)UIAbility和Page交互-CSDN博客文章浏览阅读484次,点赞11次,收藏6次。通过上一篇的学习,相信大家对UIAbility已经有了初步的认知。在上篇中,我们最后实现了一个小demo,从一个UIAbility调起了另外一个UIAbility。当时我提到过,暂不实现比如点击EntryAbility中的控件去触发跳转,而是在EntryAbility加载完后直接打开FuncUIAbility。本篇,带着大家一起学习下UIAbility和Page之间的交互。https://blog.csdn.net/qq_21154101/article/details/135645660?spm=1001.2014.3001.5501

一、UI开发概述

    方舟开发框架(简称ArkUI)为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。

    ArkUI提供了两种UI开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。推荐使用声明式开发范式,本篇以及后续的文章都是基于声明式开发范式。

    声明式开发范式采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建HarmonyOS应用UI所必需的能力:

鸿蒙开发(五)鸿蒙UI开发概览,鸿蒙,harmonyos,华为

 1、初识ArkTS语言

    ArkTS是HarmonyOS开发的主力语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展,继承了TypeScript的所有特性。所以,如果有TypeScript语言的开发经验,上手会非常快。但如果你没有TypeScript的经验,我觉得问题也不大。

当前,ArkTS在TS的基础上主要扩展了如下能力:

  • 基本语法

    ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,提供了多种系统组件及其相关的事件方法、属性方法。

  • 状态管理

    ArkTS提供了多维度的状态管理机制。与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。

  • 渲染控制

    ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,渲染对应状态下的UI内容。

2、基本语法概述

    接下来,基于一个简单的页面示例,一起学习下基本语法。如下图所示的代码,当点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。

鸿蒙开发(五)鸿蒙UI开发概览,鸿蒙,harmonyos,华为

  • 装饰器

    用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,@Component表示自定义组件,@Entry表示该自定义组件为入口组件,@State表示组件中的状态变量,状态变量变化会触发UI刷新。(看起来很牛,弱弱的多说一句,这就类似Java的注解)

  • UI描述

以声明式的方式来描述UI的结构,例如build()方法中的代码块。(看着也很厉害,其实就是new了一个View,设置了width/height以及size等属性)

  • 自定义组件

可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。(嗯,就好比一个自定义的ViewGroup,里面又包含了很多View)

  • 系统组件

ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。(这个没什么多说的,就是一些系统的最小单元的View)

  • 属性方法

组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。(别怕,android也有,几乎一毛一样的)

  • 事件方法

组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。(其实就类似Android的OnXXXListener)

三、声明式UI描述

    通过上面对UI基本语法的学习,相信大家已经对UI开发有了基本的了解。接下来我们手把手的去写一写demo,创建几个常用的控件,并且给控件设置各种各样的属性,并且对控件增加事件。

1、创建控件

    创建控件包含有参数和无参数两种方式,这个不用多说,根据控件的构造方法来的。

(1)无参。例如Row(),Column(),Divider()等

(2)有参。例如Image等

 build() {
    Row() {
      Column() {
        Text('文本')
        Divider()
        Button('按钮')
        Divider()
        Image($r('app.media.icon'))
      }
      .width('100%')
    }
    .height('100%')
  }

2、配置控件属性

    以“.”链式调用的方式配置控件的样式和其他属性,可以为控件配置内容、宽高、颜色、字体大小等,建议每个属性方法单独写一行。如下:

Text(this.message)
          .fontSize(50)                 // 设置文本大小
          .fontColor(Color.Blue)        // 设置文本颜色
          .fontWeight(FontWeight.Bold)  // 设置文本样式 - 粗体

3、配置事件

    以“.”链式调用的方式配置控件的事件,可以设置多个事件,建议每个事件方法单独写一行,如下:

Button('按钮')                   
          .fontSize(20)
          .onClick(() => {              // 设置点击事件
            this.message = 'Hello ArkUI'
          })

四、代码和效果

    以下是该章节的所有代码:

@Entry
@Component
struct Index {
  @State message: string = 'Hello Harmony'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50) // 设置文本大小
          .fontColor(Color.Blue) // 设置文本颜色
          .fontWeight(FontWeight.Bold) // 设置文本样式 - 粗体
        Divider()
        Button('按钮') // 设置按钮文本
          .fontSize(20)
          .onClick(() => { // 设置点击事件
            this.message = 'Hello ArkUI'
          })
        Divider()
        Image($r('app.media.icon'))
          .width(100) // 设置图片宽高
          .height(100)
      }
      .width('100%')
    }
    .height('100%')
  }
}

    一起看下效果:

鸿蒙开发(五)鸿蒙UI开发概览,鸿蒙,harmonyos,华为

    本篇介绍了UI开发的基础知识,包括ArkTS的基本语法、声明式UI的使用方法(创建控件、为控件配置属性、增加事件等)。在最后呢,我把本篇的代码全附在了最后,并且给大家演示了效果。下一篇,会跟大家一起学习下鸿蒙UI开发的布局。文章来源地址https://www.toymoban.com/news/detail-804584.html

到了这里,关于鸿蒙开发(五)鸿蒙UI开发概览的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS鸿蒙基于Java开发: Java UI 动画开发指导

    目录 帧动画 数值动画 属性动画 动画集合 多个动画同时开始 多个动画按顺序逐个执行 多个动画顺序执行和同时执行并存 动画是组件的基础特性之一,精心设计的动画使UI变化更直观,有助于改进应用程序的外观并改善用户体验。

    2024年02月21日
    浏览(47)
  • HarmonyOS鸿蒙基于Java开发: Java UI 多模输入开发

    目录 约束与限制 场景介绍 接口说明 开发步骤 HarmonyOS旨在为开发者提供NUI(Natural User Interface)的交互方式。有别于传统操作系统的输入划分方式,在HarmonyOS上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多

    2024年01月20日
    浏览(48)
  • HarmonyOS鸿蒙基于Java开发: Java UI 自定义布局

    当Java UI框架提供的布局无法满足需求时,可以创建自定义布局,根据需求自定义布局规则。 Component类相关接口  表1  Component类相关接口 接口名称 作用 setEstimateSizeListener 设置测量组件的侦听器 setEstimatedSize 设置测量的宽度和高度 onEstimateSize 测量组件的大小以确定宽度和高度

    2024年02月19日
    浏览(51)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 ScrollView

    目录 支持的XML属性 创建ScrollView 设置ScrollView 根据像素数平滑滚动 平滑滚动到指定位置 设置布局方向 设置回弹效果

    2024年01月18日
    浏览(45)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 RadioButton

    目录 支持的XML属性 创建RadioButton 设置RadioButton 设置单选按钮的字体颜色 设置状态标志样式 RadioButton用于多选一的操作,需要搭配RadioContainer使用,实现单选效果。 RadioButton的共有XML属性继承自:Text RadioButton的自有XML属性见下表: 表1  RadioButton的自有XML属性

    2024年01月24日
    浏览(47)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件Switch

    目录 支持的XML属性 创建Switch 设置Switch Switch是切换单个设置开/关两种状态的组件。 Switch的共有XML属性继承自:Text Switch的自有XML属性见下表: 表1  Switch的自有XML属性 属性名称 中文描述 取值 取值说明 使用案例 text_state_on

    2024年01月18日
    浏览(55)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 WebView

    目录 WebView的使用方法 浏览网页历史记录 使用JavaScript 观测Web状态 观测浏览事件 定制网址加载行为 加载资源文件或本地文件 WebView提供在应用中集成Web页面的能力。 说明 请使用真机

    2024年01月20日
    浏览(44)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 ListContainer

    目录 支持的XML属性 ListContainer的使用方法 ListContainer的常用接口 ListContainer的样式设置 ListContainer性能优化 ListContainer是用来呈现连续、多行数据的组件,包含一系列相同类型的列表项。 ListContainer的共有XML属性继承自:Component ListContainer的自有XML属性见下表: 表1  ListContainer的

    2024年01月20日
    浏览(50)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 PageSliderIndicator

    目录 PageSliderIndicator的创建和使用 PageSliderIndicator的常用方法 关联PageSlider 响应页面切换事件 设置所选导航点的页面位置 设置导航点的背景 设置导航点之间的偏移量 PageSliderIndicator,

    2024年01月16日
    浏览(41)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件TimePicker

    目录 支持的XML属性 使用TimePicker 显示样式配置 范围选择设置 TimePicker主要供用户选择时间。 TimePicker的共有XML属性继承自:StackLayout TimePicker的自有XML属性见下表: 表1  TimePicker的自有XML属性 属性名称 中文描述 取值 取值说明

    2024年02月21日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包