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

【鸿蒙应用】总结一下ArkUI

ArkUI是 HarmonyOS 应用界面的 UI 开发框架,提供了简洁的 UI 语法、UI 组件、动画机制和事件交互等等 UI 开发基础,以此满足应用开发者对 UI 界面开发的需求。

组件是界面搭建的最小单位,开发者通过多种组件的组合构成完整的界面。

页面是ArkUI最小的调度分隔单位,开发者可以将应用设计为多个功能页面,每一个页面进行单独的文件管理,并且通过页面路由 API 完成页面之间的调度管理,以此来实现应用内功能的解耦。

ArkUI有这几个特征:

  1. UI 组件:ArkUI内置了丰富的多态组件,包括Image、Text、Button等基础组件,可包含一个或多个子组件的容器组件、满足开发者自定义绘图需求的绘制组件以及提供视频播放能力的媒体组件等。其中“多态”是指组件针对不同类型设备进行了设计,提供了在不同平台上的样式适配能力。同时,ArkUI也支持用户自定义组件。
  2. 布局:ArkUI提供了多种布局方式,不仅保留了经典的弹性布局能力,还提供了列表、宫格、栅格布局和适应多分辨率场景开发的原子布局能力。
  3. 动画:ArkUI对于UI界面的美化,除组件内置动画效果外,还提供了属性动画、转场动画和自定义动画能力。
  4. 绘制:ArkUI提供了多种绘制能力,以满足开发者的自定义绘图需求,支持绘制形状、颜色填充、绘制文本、变形与裁剪、嵌入图片等。
  5. 交互事件:ArkUI提供了多种交互能力,以满足应用在不同平台通过不同输入设备进行UI交互响应的需求,默认适配触摸手势、遥控器按键输入、键鼠输入,同时提供了相应的事件回调以便开发者添加交互逻辑。
  6. 平台 API 通道:ArkUI提供了API扩展机制,可通过该机制对平台能力进行封装,提供风格统一的JS接口。
  7. 两种开发范式:ArkUI针对不同的应用场景以及不同技术背景的开发者提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称声明式开发范式)和兼容JS的类Web开发范式(简称类Web开发范式)​。

常用的基础组件:Blank、Button、Checkbox、CheckboxGroup、DataPanel、DatePicker、Divider、Gauge、Image、ImageAnimator、LoadingProgress、Marquee、Navigation、PatternLock、Progress、QRCode、Radio、Rating、RichText、ScrollBar、Search、Select、Slider、Span、Stepper、StepperItem、Text、TextArea、TextClock、TextInput、TextPicker、TextTimer、TimePicker、Toggle、Web、XComponent。

常见的容器组件:AlphabetIndexer、Badge、Column、ColumnSplit、Counter、Flex、GridContainer、GridCol、GridRow、Grid、GridItem、List、ListItem、Navigator、Panel、Refresh、RelativeContainer、Row、RowSplit、Scroll、SideBarContainer、Stack、Swiper、Tabs、TabContent。

媒体组件:Video。

绘制组件:Circle、Ellipse、Line、Polyline、Polygon、Path、Rect、Shape。

画布组件:Canvas。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣题解2848
  • 【C语言】分支和循环(下)
  • C语言指针和数组梳理
  • opencv之图像轮廓(三)--凸包
  • Unity SRP 可编程渲染管线的基本用法
  • Python——俄罗斯方块
  • 『功能项目』切换职业面板【48】
  • 笔试强训day13
  • MySQL索引-聚簇索引和非聚簇索引
  • Android 11 FileProvider的使用和限制
  • URL的执行流程
  • 【C-项目】网盘(一期,线程池版)
  • react 安装使用 antd+国际化+定制化主题+样式兼容
  • 进程vs线程:高效并发编程的基石
  • fsck 命令:修复文件系统错误
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android优雅地处理按钮重复点击
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Flannel解读
  • IP路由与转发
  • leetcode386. Lexicographical Numbers
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • React as a UI Runtime(五、列表)
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • select2 取值 遍历 设置默认值
  • SQL 难点解决:记录的引用
  • swift基础之_对象 实例方法 对象方法。
  • 创建一种深思熟虑的文化
  • 如何用vue打造一个移动端音乐播放器
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​马来语翻译中文去哪比较好?
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #AngularJS#$sce.trustAsResourceUrl
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • $.ajax中的eval及dataType
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (笔记)M1使用hombrew安装qemu
  • (二)测试工具
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (简单) HDU 2612 Find a way,BFS。
  • (论文阅读11/100)Fast R-CNN
  • (一)appium-desktop定位元素原理
  • .mysql secret在哪_MySQL如何使用索引
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • .net连接MySQL的方法
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET企业级应用架构设计系列之技术选型
  • @staticmethod和@classmethod的作用与区别
  • @vue/cli脚手架