HarmonyOS-ArkUI

ArkUI

为应用的开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等。

基础组件

用于展示页面的基础元素,例如:ButtonTextImage等。

Button

Button作为容器使用时,可以通过添加子组件的方式实现包含文字或者图片等元素的按钮。

typescript 复制代码
Button(label?: ResourceStr, options?: { type?: ButtonType, stateEffect?: boolean })
  • label用来设置按钮文字
  • type用于设置button类型:胶囊类型(Capsule)、圆形按钮(Circle)和普通按钮(Normal),
  • stateEffect属性设置button是否开启点击效果

Text

文本显示(Text/Span)

Text提供两种文字加载模式: 一种是直接加载文本

scss 复制代码
Text('文本内容')

另一种采用资源方式加载,需要再代码中预先配置好资源。 资源引用类型可以通过$r创建Resource类型对象,文件位置为/resources/base/element/string.json。

typescript 复制代码
Text($r('app.string.module_desc'))
添加子组件span

Span 组件必须嵌入在Text组件中才能显示,单独的Span组件不会呈现任何内容。Text与Span同时配置文本内容时,Span内容覆盖Text内容。

自定义文本样式
  • 文本对齐样式textAlign:Start、Center、End
  • 文本超长处理textOverflow:None、Ellipsis(超出部分显示省略号)、MARQUEE(超出文本将滚动显示),需配合maxlines一起使用
  • 文本行高 lineHeight
  • 文本装饰线 decoration: LineThrough、Overline、Underline
  • 文本字符间距 letterSpacing
  • 文本大小写 TextCase: Normal、LowerCase(小写)、UpperCase(大写)
文本输入(TextInput/TextArea)

TextInput 为单行输入框、TextArea为多行输入框。

typescript 复制代码
TextInput(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextInputController})
typescript 复制代码
TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController})
设置输入框类型

设置输入框类型type:Normal、Password、Email、Number、PhoneNumber、NUMBER_DECIMAL(带小数点的数字输入模式)、URL

自定义输入框样式
  • 无输入时的提示文本placeholder
  • 输入框当前的文本内容text

image

image支持png、jpg、bmp、svg、gif等多种图片格式,用来丰富应用界面。

typescript 复制代码
Image(src: PixelMap | ResourceStr | DrawableDescriptor)

设置图片的缩放类型objectFit:

  • Auto:自适应显示。
  • Contain:保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。
  • Cover:保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。
  • Fill:不保持宽高比进行放大缩小,使得图片充满显示边界。
  • ScaleDown:保持宽高比显示,图片缩小或者保持不变。
  • None :保持原有尺寸显示。 设置图片解码尺寸sourceSize ,降低图片的分辨率。

布局容器组件

用于界面上组织组件的排列,例如:RowColumnSwiperListGridWaterFlow等。

Row容器内子组件按照水平方向排列

Column容器内子组件按照垂直方向排列

Swiper容器组件具备滑动轮播显示能力

List容器容纳一定数量的列表项,内容超过屏幕大小时,会自动提供滚动功能。适用于呈现同类数据类型或者数据类型集合。

Grid网格是由行和列分割而成的单元格组成,通过指定项目所在的单元格实现各种布局,具有较强的页面均分和子组件占比控制能力,是一种重要的自适应布局。

WaterFlow瀑布流容器同样由行和列分割的单元格组成,通过自身排列规则,可以将大小不同的项目自上而下如瀑布般紧密布局。

导航组件

用于实现页面的跳转或切换,例如:NavigationTabs

Navigation是路由容器组件,主要包含导航页和子页。导航页由标题栏和工具栏组成,其中导航页可以通过hideNavBar属性隐藏,它不存在于页面栈中。

导航页与子页,以及子页之间可以通过路由操作切换。

Tabs组件的页面由TabContent内容页和TabBar导航页签栏两部分组成,根据不同导航类型,其布局有所不同,可以分为底部导航、顶部导航、侧边导航。

更多组件

PatternLock 图案密码锁、Slider 滑动条组件、CustomDialog自定义弹窗

CalendarPicker 日历选择器、TextPicker 文本滑动选择器、DatePicker 日期滑动选择器、TimePicker时间滑动选择器

相关推荐
Emily156853598702 小时前
Emerson 1C31129G03 Analog Input Module
java·开发语言·前端·plc·emerson·1c31129g03·input module
To_OC7 小时前
面试被问了三回三栏布局,这次我终于把 BFC 那层窗户纸捅破了
前端·css·面试
To_OC7 小时前
啃完 TS 工具类型我发现:Pick 和 Omit 原来就是一层窗户纸
前端·面试·typescript
风月说与山鬼9 小时前
三、大括号语法
前端·react.js
kyriewen9 小时前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
Csvn9 小时前
🕰️ 闭包 + setTimeout 的 5 个经典陷阱:为什么定时器看到的永远不是最新的值?
前端
lilian23310 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
CarIise10 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢11 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js