如何快速体验鸿蒙全新声明式UI框架ArkUI?
HDC2021将于10月22日在东莞松山湖正式开幕,大会将设立Codelab体验专区,超多好玩、有趣的Demo等你体验。想快速入门HarmonyOS?学习HarmonyOS新特性?以下几个Codelab Demo不容错过~
极简声明式UI框架ArkUI
随着用户设备类型的不断增加,手机、平板、大屏、车载、穿戴等设备对应用UI界面开发提出了更加多样化的诉求,应用开发者在开发应用界面的时候要考虑多种设备场景,从而导致工程代码量增加,甚至需要维护多个工程来适配不同设备。
HarmonyOS提供一套极简声明式UI范式开发框架ArkUI,是HarmonyOS提供的一套基于JS/TS语言的开发能力集合,旨在帮助应用开发者高效开发跨端应用UI界面,自动适配多种不同的屏幕形态,开发者无需关心框架如何实现UI绘制和渲染,只需聚焦应用开发,从而实现极简高效地开发。
本篇Codelab为大家展示的是如何使用ArkUI开发范式快速开发一个有转场动画、页面上下滑动,双击可以放大或缩小图片,左右滑动可以切换图片功能的UI界面,效果如图1所示:

更多ArkUI详情,请前往官网Codelab:https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-EtsUI
ArkUI基础组件Slider的使用
Slider是一个滑动组件,常用的场景有音乐播放进度条、系统音量调节、屏幕亮度调节等。凡是和进度有关的场景,都可以尝试用一下这个组件。
HarmonyOS 极简声明式UI开发框架(ArkUI)提供了丰富的接口和组件,在本Codelab中,我们将通过一个简单的样例,学习Slider组件的使用,还将搭配Image组件、Slider组件、Text组件共同实现一个可调节的风车动画,完成效果如图2所示:

更多ArkUI基础组件Slider开发详情,前往官网Codelab:
https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-ETS-Slider
一次开发多端部署
在多场景多终端的时代,消费者期待在不同终端上获得同样的体验和服务,操作也应该像使用同一个设备一样。这使开发者面临很大的挑战,因为不同设备形态/硬件差异大,开发者需要对多种设备开发多套代码。
一次开发,多端部署通过多终端统一编程框架、自动适配多终端硬件能力的统一抽象UI控件,以及为不同屏幕的终端提供自适应布局,开发者无需针对不同设备开发多套代码,只需一套应用工程,就可以在多种终端部署。不仅提高了开发效率,还降低了代码的维护难度。
本篇Codelab使用ArkUI实现一次开发多端部署,效果预览如图3所示:

更多“一次开发,多端部署”开发详情,前往官网Codelab:
https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-EtsMultiDeployment
平行视界
平行视界是一种实现在应用内双窗口显示的方案,适用于平板、折叠屏展开态等大屏幕设备。简单来说,就是将设备横屏使用,进入“平行视界”模式后,一个应用将会分为左右两屏显示,两边互不干扰。
例如:浏览网页查找资料的时候,你可以一边看搜索结果一边看点开后的具体网页,资料查找的效率大大提升……
本篇Codelab主要利用平行视界实现应用内双窗口,将两个Ability左右显示在同一个应用的不同窗口。左侧页面展示图片列表,可根据屏幕宽度自适应调节图片布局;右侧页面展示选择的图片,可对图片进行裁剪、缩放、镜像、保存、流转操作。效果如图4所示:左边是图片库,右边是查看大图,两者搭配,效率加倍。

更多平行视界开发详情,前往官网Codelab:https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-ParallelHorizon
想了解更多HarmonyOS新特性Codelab?HDC2021 Codelab体验专区等你来~
更多精彩内容,请见华为开发者官方论坛→https://developer.huawei.com/consumer/cn/forum/home?ha_source=sanfang
如何快速体验鸿蒙全新声明式UI框架ArkUI?的更多相关文章
- HDC技术分论坛:HarmonyOS新一代UI框架的全面解读
作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...
- Flutter 1.5 发布,正式成为全平台 UI 框架!
一. 序 在 Google I/O 2019 上,Dart 团队宣布推出新的 Flutter 稳定版本 1.5,这是 Flutter 迄今为止最大的一次版本发布. 伴随着 Flutter 1.5 的发 ...
- 乘风破浪,遇见Android Jetpack之Compose声明式UI开发工具包,逐渐大一统的原生UI绘制体系
什么是Android Jetpack https://developer.android.com/jetpack Android Jetpack是一个由多个库组成的套件,可帮助开发者遵循最佳做法.减少 ...
- 2015年最全的移动WEB前端UI框架
目前,众多互联网公司APP都嵌入了大量的HTML5,移动端的开发越来越重视,HTML5的运用场景也越来越多了.在移动WEB开发的过程中,使用合适的移动WEB UI框架可以大大提升我们的开发效率.下面P ...
- 这是一个比较全的Android UI 组件
Android组件及UI框架大全 原文地址:http://blog.csdn.net/smallnest/article/details/38658593 Android 是目前最流行的移动操作系统 ...
- Jmeter压测快速体验
前言 最近在看neo4j相关的官网文档以及一些调优参数,同时也学了下Jmeter,为了测试下neo4j服务的性能,虽然不是专业搞测试的,但是我觉得每个优秀的开发者都应该学会主动压测自己服务和代码的性能 ...
- Mac最新Flutter环境搭建运行和对比理解声明式UI
前言 这段时间一直都在学习和写关于SwiftUI的东西,前面也总结了四篇文章来大体上说了下Demo中功能实现的一些细节,后面准备开始了解学习一下Flutter,争取在年前能再用Flutter写一份项目 ...
- 12个优秀用户体验的移动应用程序 UI 设计
最美丽的,现代化的和惊人的移动 UI 设计就在这里.今天,我们挑选了12个来自 Behance 和 Dribbble 网站的优秀用户体验的手机界面设计.这些界面设计作品都是由世界各地的优秀设计师分享, ...
- gitbook 入门教程之快速体验
本文主要介绍三种使用 gitbook 的方式,分别是 gitbook 命令行工具,Gitbook Editor 官方编辑器和 gitbook.com 官网. 总体来说,三种途径适合各自不同的人群,找到 ...
随机推荐
- Cookie在哪里看
更多java学习请进: https://zhangjzm.gitee.io/self_study
- Photoshop 各混合模式 RGB 是如何计算的
原文链接:https://www.jb51.net/photoshop/249182.html 1.正常模式(Normal) 默认模式,显示混合色图层的像素,没有进行任何的图层混合.这意味着基色图层( ...
- C#多线程开发-线程池03
你好,我是阿辉. 前面2篇文章介绍了线程的基础知识和线程同步,下面我们来一起认识学习下,线程池的使用. 线程池 创建线程是昂贵的操作,所以为每个短暂的异步操作创建线程会产生显著的开销.一般情况下,都会 ...
- ☕【Java技术指南】「并发编程专题」Fork/Join框架基本使用和原理探究(基础篇)
前提概述 Java 7开始引入了一种新的Fork/Join线程池,它可以执行一种特殊的任务:把一个大任务拆成多个小任务并行执行. 我们举个例子:如果要计算一个超大数组的和,最简单的做法是用一个循环在一 ...
- 使用python快速搭建http服务
python2语法:python -m SimpleHTTPServer python3语法:python -m http.server 在局域网中使用web去访问http:/IP:8000即可 可以 ...
- Vue组件传值(三)之 深层嵌套组件传值 - $attrs 和 $listeners
$attrs 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外).当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class和 ...
- 方法重载(Override)
什么是方法的重写(override 或 overwrite)? 子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作. 应用: 重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参 ...
- Redis核心原理与实践--列表实现原理之quicklist结构
在上一篇文章<Redis列表实现原理之ziplist结构>,我们分析了ziplist结构如何使用一块完整的内存存储列表数据. 同时也提出了一个问题:如果链表很长,ziplist中每次插入或 ...
- c++ undefined reference
记录一次c++编程时发现的问题 报错 undefined reference undefined reference to `Student::~Student()' 下面还有类似的好几行,翻译过来就 ...
- git tag标签
列出标签 # 默认按字母排序显示 $ git tag # 模糊匹配查找标签 $ git tag -l "v2.8.5*" 创建标签 # 创建附注标签 $ git tag -a v1 ...