初识ArkUI

初识ArkUI

ArkUI为应用的UI开发提供了完整的基础设施,包括简洁的UI语法,丰富的UI功能,以及实时界面预览工具,可以支持开发者进行可视化界面开发

概念:

即用户界面,开发者可以将应用的用户界面设计多个功能页面,每个页面进行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转,回退等操作,以实现内的功能解耦。

组件:

UI构建与显示的最小单位,开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。

两种开发范式:

声明是开发范式:采用基于TypeScrip声明式UI语法扩展而来的ArkTS语言,从组件,动画和状态管理三个维度提供UI绘制能力。

类Web开发范式:采用经典的HTML,CSS,JavaScript三段式开发方式,即使用HML标签文件搭建布局,使用CSS文件描述样式,使用JavaScrip文件处理逻辑。该范式更符合于Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。

不同应用类型支持的开发范式

stage模型:应用或服务的页面支持声明式开发范式,卡片支持声明式开发范式和类Web开发范式

FA模型:应用或服务的页面支持声明式开发范式和类Web开发范式,卡片支持类Web开发范式

ArkUI特点:

开发效率高,开发体验好(界面也是代码,让开发者的编程体验得到提升。)

性能优越:声明式UI前端和UI后端分层,语言编译器和运行时的优化,生态容易快速推进,能够借主流语言生态快速推进,语言相对中立友好,有相应的标准组织可以逐步演进。

布局
线性布局
线性布局是开发中最常用的布局,通过线性容器row和column构建。线性布局是其他布局的基础,其子元素在线性方向上依次排列。
线性布局基本概念:

布局容器:具有布局能力的容器组件,可以承载其他元素作为其子元素,布局容器会对其子元素进行尺寸计算和布局排列。

布局子元素:布局容器内部的元素。

主轴:线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。

间距:布局子元素的间距。

space属性设置排列方向上子元素的间距
Blank常用空白填充组件
Toggle()组件提供勾选框样式、状态按钮样式及开关样式。
ts 复制代码
Row(){
  Text('你好')
  //  Blank()空白填充组件
 Blank().color('red')
  // Toggle()组件提供勾选框样式、状态按钮样式及开关样式。
  Toggle({type:ToggleType.Switch,isOn:true})
}.width('90%')
.height(60)
.border({color:'red',width:1,style:BorderStyle.Solid})
 .layoutWeight(2)
justifyContent(FlexAlign.Start):主轴对齐方式

(End从后往前排,SpaceAround:左右间距 SpaceEvenly:水平对齐)

.alignItems(HorizontalAlign.Start):侧轴对齐

(Top:靠上Bottom:靠下)

ts 复制代码
Row(){
  Column().width(40).height(40).backgroundColor('gray')
  Column().width(40).height(40).backgroundColor('gray')
  Column().width(40).height(40).backgroundColor('gray')
  Column().width(40).height(40).backgroundColor('gray')
}.width('90%')
.height(60)
.border({color:'red',width:1,style:BorderStyle.Solid})
.justifyContent(FlexAlign.SpaceEvenly)
.alignItems(VerticalAlign.Bottom)
自适应缩放

自适应缩放是指子元素随容器尺寸的变化而按照预设的比例自动调整尺寸,适应各种不同大小的设备。

布局使用scroll组件

scrollable(ScrollDirection.Vertical)//滚动方向为垂直方向

scrollBar(BarState.Auto)//On:打开滚动条 Off:关闭滚动条 Auto:自动

scrollBarColor(Color.Yellow)//滚动条的颜色

scrollBarWidth(5)//滚动条的宽度

ts 复制代码
@State message: string = 'Hello World';
@State nums:number[]=[1,2,3,4,5,6,7,8,9,10]
build() {
 Scroll(){
    Column({space:10}){
      ForEach(this.nums,(n:number,i)=>{
        Row(){
          Text(n.toString())
        }.height(100)
        .backgroundColor('gray')
        .width('90%')
        .justifyContent(FlexAlign.Center)
        .borderRadius(10)

        Row(){
          Text(n.toString())
        }.height(100)
        .backgroundColor('gray')
        .width('90%')
        .justifyContent(FlexAlign.Center)
        .borderRadius(10)
      })
    }.width('100%')

  }
  .height('100%')
  .width('100%')
  .scrollable(ScrollDirection.Vertical)
  .scrollBar(BarState.Auto)
  .scrollBarColor(Color.Yellow)
  .scrollBarWidth(5)
}
相关推荐
云和数据.ChenGuang1 小时前
AI向量数据库chromadb的swagger-ui的运行使用教程
大数据·数据库·人工智能·ui·向量数据库·向量计算
Swift社区2 小时前
ArkUI 的页面生命周期详解
ui·arkui
kishu_iOS&AI3 小时前
【BUG】Openclaw 2026.3.22版本 Control UI网页控制台打不开
ui·openclaw
CHQIUU3 小时前
升级到 OpenClaw v2026.3.22 后常见问题:飞书插件与 Control UI 排障记录
ui·飞书·openclaw
左手厨刀右手茼蒿16 小时前
Flutter for OpenHarmony: Flutter 三方库 shamsi_date 助力鸿蒙应用精准适配波斯历法(中东出海必备)
android·flutter·ui·华为·自动化·harmonyos
互联网散修1 天前
鸿蒙应用开发UI基础第三十节:循环渲染核心ForEach 实战与性能优化
ui·华为·harmonyos
UnicornDev1 天前
【HarmonyOS 6】活动标签管理页面实现
华为·harmonyos·arkts·鸿蒙·鸿蒙系统
程序员Ctrl喵1 天前
状态管理与响应式编程 —— 驾驭复杂应用的“灵魂工程”
开发语言·flutter·ui·架构
AxureMost1 天前
Seelen UI 桌面美化工具(仿MAC交互)
macos·ui·交互
I'm Jie2 天前
Swagger UI 本地化部署,解决 FastAPI Swagger UI 依赖外部 CDN 加载失败问题
python·ui·fastapi·swagger·swagger ui