鸿蒙Harmony应用开发—ArkTS声明式开发(模态转场设置:全屏模态转场)

通过bindContentCover属性为组件绑定全屏模态页面,在组件插入和删除时可通过设置转场参数ModalTransition显示过渡动效。

说明:

从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

不支持横竖屏切换。

不支持路由跳转。

bindContentCover

bindContentCover(isShow: boolean, builder: CustomBuilder, options?: ContentCoverOptions)

给组件绑定全屏模态页面,点击后显示模态页面。模态页面内容自定义,显示方式可设置无动画过渡,上下切换过渡以及透明渐变过渡方式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
isShowboolean是否显示全屏模态页面。
从API version 10开始,该参数支持$$双向绑定变量。
builderCustomBuilder配置全屏模态页面内容。
optionsContentCoverOptions配置全屏模态页面的可选属性。

ContentCoverOptions

继承自BindOptions。

名称类型必填描述
modalTransitionModalTransition全屏模态页面的转场方式。

示例

示例1

全屏模态无动画转场模式下,自定义转场动画。

// xxx.ets
@Entry
@Component
struct ModalTransitionExample {@State isShow:boolean = false@State isShow2:boolean = false@Builder myBuilder2() {Column() {Button("close modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = false;})}.width('100%').height('100%')}@Builder myBuilder() {Column() {Button("transition modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = true;}).bindContentCover(this.isShow2, this.myBuilder2(), {modalTransition: ModalTransition.NONE, backgroundColor: Color.Orange, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})Button("close modal 1").margin(10).fontSize(20).onClick(()=>{this.isShow = false;})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}build() {Column() {Button("transition modal 1").onClick(() => {this.isShow = true}).fontSize(20).margin(10).bindContentCover(this.isShow, this.myBuilder(), {modalTransition: ModalTransition.NONE, backgroundColor: Color.Pink, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})}.justifyContent(FlexAlign.Center).backgroundColor("#ff49c8ab").width('100%').height('100%')}
}

zh-cn_full_screen_modal_none_1

示例2

全屏模态无动画转场模式下,自定义转场动画。

// xxx.ets
import curves from '@ohos.curves';
@Entry
@Component
struct ModalTransitionExample {@State  @Watch("isShow1Change") isShow:boolean = false@State  @Watch("isShow2Change") isShow2:boolean = false@State isScale1:number = 1;@State isScale2:number = 1;isShow1Change() {this.isShow ? this.isScale1 = 0.95 : this.isScale1 = 1}isShow2Change() {this.isShow2 ? this.isScale2 = 0.95 : this.isScale2 = 1}@Builder myBuilder2() {Column() {Button("close modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = false;})}.width('100%').height('100%')}@Builder myBuilder() {Column() {Button("transition modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = true;}).bindContentCover(this.isShow2, this.myBuilder2(), {modalTransition: ModalTransition.NONE, backgroundColor: Color.Orange, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})Button("close modal 1").margin(10).fontSize(20).onClick(()=>{this.isShow = false;})}.width('100%').height('100%').justifyContent(FlexAlign.Center).scale({x: this.isScale2, y: this.isScale2}).animation({curve:curves.springMotion()})}build() {Column() {Button("transition modal 1").onClick(() => {this.isShow = true}).fontSize(20).margin(10).bindContentCover(this.isShow, this.myBuilder(), {modalTransition: ModalTransition.NONE, backgroundColor: Color.Pink, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})}.justifyContent(FlexAlign.Center).backgroundColor("#ff49c8ab").width('100%').height('100%').scale({ x: this.isScale1, y: this.isScale1 }).animation({ curve: curves.springMotion() })}
}

zh-cn_full_screen_modal_none_2

示例3

全屏模态上下切换转场。

// xxx.ets
@Entry
@Component
struct ModalTransitionExample {@State isShow:boolean = false@State isShow2:boolean = false@Builder myBuilder2() {Column() {Button("close modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = false;})}.width('100%').height('100%')}@Builder myBuilder() {Column() {Button("transition modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = true;}).bindContentCover(this.isShow2, this.myBuilder2(), {modalTransition: ModalTransition.DEFAULT, backgroundColor: Color.Gray, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})Button("close modal 1").margin(10).fontSize(20).onClick(()=>{this.isShow = false;})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}build() {Column() {Button("transition modal 1").onClick(() => {this.isShow = true}).fontSize(20).margin(10).bindContentCover(this.isShow, this.myBuilder(), {modalTransition: ModalTransition.DEFAULT, backgroundColor: Color.Pink, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})}.justifyContent(FlexAlign.Center).backgroundColor(Color.White).width('100%').height('100%')}
}

zh-cn_full_screen_modal_default

示例4

全屏模态透明度渐变转场。

// xxx.ets
@Entry
@Component
struct ModalTransitionExample {@State isShow:boolean = false@State isShow2:boolean = false@Builder myBuilder2() {Column() {Button("close modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = false;})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}@Builder myBuilder() {Column() {Button("transition modal 2").margin(10).fontSize(20).onClick(()=>{this.isShow2 = true;}).bindContentCover(this.isShow2, this.myBuilder2(), {modalTransition: ModalTransition.ALPHA, backgroundColor: Color.Gray, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})Button("close modal 1").margin(10).fontSize(20).onClick(()=>{this.isShow = false;})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}build() {Column() {Button("transition modal 1").onClick(() => {this.isShow = true}).fontSize(20).margin(10).bindContentCover(this.isShow, this.myBuilder(), {modalTransition: ModalTransition.ALPHA, backgroundColor: Color.Pink, onAppear: () => {console.log("BindContentCover onAppear.")}, onDisappear: () => {console.log("BindContentCover onDisappear.")}})}.justifyContent(FlexAlign.Center).backgroundColor(Color.White).width('100%').height('100%')}
}

zh-cn_full_screen_modal_alpha

最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(Harmony NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(Harmony NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP三次握手,四次挥手状态转移过程

1.TCP状态转移过程 TCP连接的任意一端都是一个状态机,在TCP连接从建立到断开的整个过程中,连接两端的状态机将经历不同的状态变迁.理解TCP状态转移对于调试网络应用程序将有很大的帮助. 2.三次握手状态转换 3.四次挥手状态转换 4.TIME WAIT状态详解 为什么要有一个"TIME…

数据标注专业团队

数据标注服务 在跟一些淘宝、多多商家老板合作后,客户一般付款后,中介是有20%左右的提成,我们主要是希望可以实现数据标注无中介化,有需求可以直接联系数据标注团队直接负责人, 若有意愿请添加添加v:shu_ju…

9. 内核、文件系统加载工具

内核、文件系统加载工具 内核、文件系统加载工具是嵌入式开发必备的工具 1. 烧写BootLoader 1.1 通过超级终端方式 烧写 Bootloader 可以使用超级终端的“传送” |“发送文件”命令进入发送文件对话框,使用 Xmodem 协议和 Kermit 协议发送 Bootloader 的各个文件…

docker安装rocketMq

在搭建之前,我们需要做一些准备工作,这里我们需要使用 docker 搭建服务,所以需要提前安装 docker。 此外,由于 rocketmq 需要部署 broker 与 nameserver ,考虑到分开部署比较麻烦,这里将会使用docker-comp…

网络模块使用Hilt注入

retrofit的异步回调方法已经做了线程切换&#xff0c;切换到了主线程 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"><uses-permission android:name"andr…

JS原型链面试题

题目1 function Person(name) {this.name name; }Person.prototype.sayHello function() {console.log(Hello, this.name); };var john new Person(John); john.sayHello();请问上述代码的输出结果是什么&#xff1f; 答案1 输出结果是&#xff1a;Hello, John 题目2 …

如何通过Python代码连接OceanBase Oracle租户

背景 目前&#xff0c;连接数据库的Oracle租户&#xff0c;只能通过Java和C的驱动程序&#xff0c;无法通过其他语言的驱动程序。为了满足社区中用户希望在Python代码中连接Oracle租户的需求&#xff0c;这里提供一种替代方案。通过结合使用JayDeBeApi和JDBC&#xff0c;我们可…

Docker使用及部署流程

文章目录 1. 准备Docker环境2. 准备应用的Docker镜像3. 在服务器上运行Docker容器方法一:Docker Hub方法二:从构建环境传输镜像4. 管理和维护使用Docker Compose(可选)主要区别步骤 1: 安装Docker ComposeLinuxWindowMac步骤 2: 创建docker-compose.yml文件步骤 3: 使用Doc…

牛客网KY266 反序数

题目 描述&#xff1a; 设N是一个四位数&#xff0c;它的9倍恰好是其反序数&#xff08;例如&#xff1a;1234的反序数是4321&#xff09;求N的值。 输入描述&#xff1a; 程序无任何输入数据。 输出描述&#xff1a; 输出题目要求的四位数&#xff0c;如果结果有多组&#xff…

超越 Siri 和 Alexa:探索LLM(大型语言模型)的世界

揭秘LLM&#xff1a;语言模型新革命&#xff0c;智能交互的未来趋势 近年来&#xff0c;虚拟助手的世界发生了重大转变。 虽然 Siri 和 Alexa 本身就是革命性的&#xff0c;但一种称为大型语言模型 (LLM) 的新型人工智能正在将虚拟助手的概念提升到一个全新的水平。 在这篇博文…

JS自动跳转手机移动网页

JavaScript 中实现自动检测用户是否使用移动设备&#xff0c;并据此跳转到对应的手机移动网页&#xff0c;通常可以通过检查 ​​navigator.userAgent​​ 属性来识别用户代理字符串中包含的设备信息。以下是一个简单的示例&#xff0c;展示如何基于用户使用的浏览器类型进行判…

主流接口测试框架对比,究竟哪个更好用

公司计划系统的开展接口自动化测试&#xff0c;需要我这边调研一下主流的接口测试框架给后端测试&#xff08;主要测试接口&#xff09;的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求&#xff0c;看哪个框架更适合我们。 需求 1、接口编写…

[IAGC] Kafka消费者组的负载均衡策略

在Apache Kafka中&#xff0c;负载均衡是通过将主题的每个分区分配给消费者组中的一个消费者来实现的。Kafka的负载均衡算法会尽可能平均地将分区分配给每个消费者。 文章目录 分配策略Kafka的重新平衡扩展性参考资源 分配策略 在Kafka中&#xff0c;有两种内置的分区分配策略…

2-LINUX--Linux 系统文件类型与文件权限

一.文件类型 Linux 下所有的东西都可以看做文件&#xff0c;Linux 将文件分为以下几种类型&#xff1a; 1. 普通文件 ‘-’ 2. 目录文件 ‘d’ 3. 管道文件 ‘p’ 4. 链接文件 ‘l’ 5. 设备文件&#xff08;块设备 ’b’ 、字符设备 ‘c’&#xff09; 6. 套接字…

算法竞赛例题讲解:[蓝桥杯 2023 国 B] 班级活动

[蓝桥杯 2023 国 B] 班级活动 题目描述 小明的老师准备组织一次班级活动。班上一共有 n n n 名&#xff08; n n n 为偶数&#xff09;同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n n n 以…

.NET 简介:跨平台、开源、高性能的开发平台

.NET 简介 .NET 是微软开发的一个免费、开源、跨平台的开发人员平台&#xff0c;用于构建各种类型的应用程序。它可以运行使用多种语言编写的程序&#xff0c;其中 C# 是最常用的语言。.NET 依赖于许多大规模应用在生产中使用的高性能运行时。 .NET 平台具有以下特点&#xf…

伟骅英才|二月二:龙年龙抬头

二月二龙抬头&#xff0c;是中国民间传统节日&#xff0c;人们期盼通过对龙的祈求来实现降雨的目的&#xff0c;寄托了老百姓对美好生活的向往。这一天&#xff0c;人们通常会去理个发&#xff0c;寓意着“二月二剃龙头&#xff0c;一年都有精神头”。现如今的二月二&#xff0…

洛谷 素数环 Prime Ring Problem

题目描述 PDF 输入格式 输出格式 题意翻译 输入正整数 nn&#xff0c;把整数 1,2,\dots ,n1,2,…,n 组成一个环&#xff0c;使得相邻两个整数之和均为素数。输出时&#xff0c;从整数 11 开始逆时针排列。同一个环恰好输出一次。n\leq 16n≤16&#xff0c;保证一定有解。 多…

二刷代码随想录——动态规划day43

文章目录 前言动态规知识点 动规五部曲一、1049. 最后一块石头的重量 II二、494. 目标和三、474. 一和零总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招&#xff0c;计划二刷完卡子哥的刷题计划&#xff0c;加油&#xff01; 二刷决定精刷了&#xff0c;于是参加了卡…

[虚拟机]

如果你电脑的物理机器硬件强大, 由于一台物理机器只能运行一个操作系统, 那么就会造成物理机器硬件的浪费 虚拟机:使用虚拟化技术&#xff0c;将一台物理机器虑拟化为多台虚拟机器&#xff08;Virtual Machine, VM)&#xff0c;每个虚拟机器都可以独立运行一个操作系统 虚拟机…