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。