初识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)
}
相关推荐
Cachel wood2 小时前
Django REST framework (DRF)中的api_view和APIView权限控制
javascript·vue.js·后端·python·ui·django·前端框架
塞尔维亚大汉16 小时前
【OpenHarmony】 鸿蒙 UI开发之CircleIndicator
harmonyos·arkui
界面开发小八哥18 小时前
DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(二)
ui·.net·wpf·界面控件·devexpress·ui开发
大土豆的bug记录20 小时前
关于鸿蒙架构feature
华为·arkts·鸿蒙·arkui
无处安放的波澜1 天前
【HarmonyOS 5.0】第十二篇-ArkUI公共属性(一)
华为·harmonyos·arkts·鸿蒙·鸿蒙系统
程序猿会指北1 天前
【鸿蒙(HarmonyOS)性能优化指南】内存分析器Allocation Profiler
性能优化·移动开发·harmonyos·openharmony·arkui·组件化·鸿蒙开发
生产队队长1 天前
项目练习:element-ui的valid表单验证功能用法
前端·vue.js·ui
程序猿会指北1 天前
【鸿蒙(HarmonyOS)性能优化指南】启动分析工具Launch Profiler
c++·性能优化·harmonyos·openharmony·arkui·启动优化·鸿蒙开发
~央千澈~2 天前
优雅草央千澈-关于蓝湖如何快速的标注交互原型是如何使用的-如何使用蓝湖设计交互原型和整个软件项目的流程逻辑-实践项目详细说明
ui·交互·蓝湖
军训猫猫头2 天前
20.抽卡只有金,带保底(WPF) C#
ui·c#·wpf