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

通过bindSheet属性为组件绑定半模态页面,在组件插入时可通过设置自定义或默认的内置高度确定半模态大小。

说明:

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

不支持路由跳转。

bindSheet

bindSheet(isShow: boolean, builder: CustomBuilder, options?: SheetOptions)

给组件绑定半模态页面,点击后显示模态页面。

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

参数:

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

说明:

在非双向绑定情况下,以拖拽方式关闭半模态页面不会改变isShow参数的值。

为了使isShow参数值与半模态界面的状态同步,建议使用$$双向绑定isShow参数。

SheetOptions

继承自BindOptions。

名称类型必填描述
heightSheetSize | Length半模态高度,默认是LARGE。
说明:
底部弹窗竖屏时,当设置sheetDetents时,该属性设置无效。
底部弹窗竖屏时,最大高度为距离信号栏8vp。
底部弹窗横屏时,该属性设置无效,高度为距离屏幕顶部8vp。
居中弹窗和跟手弹窗设置类型为SheetSize.LARGE和SheetSize.MUDIUM无效,显示默认高度560vp。居中弹窗和跟手弹窗最小高度为320vp,最大高度为窗口短边的90%。当使用Length设置的高度和使用SheetSize.FIT_CONTENT自适应的高度大于最大高度,则显示最大高度,小于最小高度,则显示最小高度。
detents11+[(SheetSize | Length), ( SheetSize | Length)?, (SheetSize | Length)?]半模态页面的切换高度档位。
说明:
底部弹窗竖屏生效,元组中第一个高度为初始高度。
面板可跟手滑动切换档位,松手后是否滑动至目标档位有两个判断条件:速度和距离。速度超过阈值,则执行滑动至与手速方向一致的目标档位;速度小于阈值,则引入距离判断条件,当位移距离>当前位置与目标位置的1/2,滑动至与手速方向一致的目标档位,位移距离当前位置与目标位置的1/2,返回至当前档位。速度阈值:1000,距离阈值:50%。
preferType11+SheetType.CENTER | SheetType.POPUP半模态页面的样式。
说明:
preferType不可设置为SheetType.BOTTOM。
showClose11+boolean | Resource是否显示关闭图标,默认显示。
说明:
Resource需要为boolean类型。
dragBarboolean是否显示控制条。
说明:
半模态面板的dentents属性设置多个不同高度并且设置生效时,默认显示控制条。否则不显示控制条。
backgroundColorResourceColor半模态页面的背板颜色。
blurStyle11+BlurStyle半模态面板的模糊背景。默认无模糊背景。
maskColorResourceColor半模态页面的背景蒙层颜色。
title11+SheetTitleOptions | CustomBuilder半模态面板的标题。
enableOutsideInteractive11+boolean半模态所在页面是否允许交互。
说明:
设置为true时允许交互,不显示蒙层;设置为false时不允许交互,显示蒙层;若不进行设置,默认底部弹窗与居中弹窗不允许交互,跟手弹窗允许交互。当设置为true时,maskColor设置无效。
onAppear() => void半模态页面显示回调函数。
onDisappear() => void半模态页面回退回调函数。
shouldDismiss11+(sheetDismiss: SheetDismiss) => void半模态页面交互式关闭回调函数。
说明:
当用户执行下拉关闭/back事件/点击蒙层关闭/关闭按钮关闭交互操作时,如果注册该回调函数,则不会立刻关闭。

SheetSize枚举说明

名称参数描述
MEDIUM指定半模态高度为屏幕高度一半。
LARGE指定半模态高度几乎为屏幕高度。
FIT_CONTENT11+指定半模态高度为适应内容的高度。

BindOptions

名称类型必填说明
backgroundColorResourceColor半模态页面的背板颜色。
onAppear() => void半模态页面显示回调函数。
onDisappear() => void半模态页面回退回调函数。

SheetType11+枚举说明

名称参数描述
BOTTOM底部弹窗。
CENTER居中弹窗。
POPUP跟手弹窗。跟手弹窗面板不支持跟手滑动,下滑面板不关闭。

SheetDismiss11+

名称类型必填描述
dismiss() => void半模态面板关闭回调函数。开发者需要退出时调用,不需要退出时无需调用。

SheetTitleOptions11+

名称类型必填描述
titleResourceStr半模态面板的主标题。
subtitleResourceStr半模态面板的副标题。

示例1

// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
  @State isShow:boolean = false
  @State isShow2:boolean = false
  @State sheetHeight:number = 300;
  @State showDragBar:boolean = true;

  @Builder myBuilder() {
    Column() {
      Button("change height")
        .margin(10)
        .fontSize(20)
        .onClick(()=>{
          this.sheetHeight = 500;
        })

      Button("Set Illegal height")
        .margin(10)
        .fontSize(20)
        .onClick(()=>{
          this.sheetHeight = -1;
        })

      Button("close dragBar")
        .margin(10)
        .fontSize(20)
        .onClick(()=>{
          this.showDragBar = false;
        })

      Button("close modal 1")
        .margin(10)
        .fontSize(20)
        .onClick(()=>{
          this.isShow = false;
        })
    }
    .width('100%')
    .height('100%')
  }

  build() {
    Column() {
      Button("transition modal 1")
        .onClick(() => {
          this.isShow = true
        })
        .fontSize(20)
        .margin(10)
        .bindSheet($$this.isShow, this.myBuilder(), {height: this.sheetHeight, dragBar: this.showDragBar, backgroundColor: Color.Green, onAppear: () => {console.log("BindSheet onAppear.")}, onDisappear: () => {console.log("BindSheet onDisappear.")}})
    }
    .justifyContent(FlexAlign.Center)
    .width('100%')
    .height('100%')
  }
}

zh-cn_sheet

示例2

// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
  @State isShow:boolean = false
  @Builder myBuilder() {
    Column() {
      Button("content1")
        .margin(10)
        .fontSize(20)

      Button("content2")
        .margin(10)
        .fontSize(20)
    }
    .width('100%')
  }

  build() {
    Column() {
      Button("transition modal 1")
        .onClick(() => {
          this.isShow = true
        })
        .fontSize(20)
        .margin(10)
        .bindSheet($$this.isShow, this.myBuilder(),{
          detents:[SheetSize.MEDIUM,SheetSize.LARGE,200],
          backgroundColor:Color.Gray,
          blurStyle:BlurStyle.Thick,
          showClose:true,
          title:{title:"title", subtitle:"subtitle"},
          preferType: SheetType.CENTER,
          shouldDismiss:((sheetDismiss: SheetDismiss)=> {
            console.log("bind sheet shouldDismiss")
            sheetDismiss.dismiss()
          })
        })
    }
    .justifyContent(FlexAlign.Start)
    .width('100%')
    .height('100%')
  }
}

zh-cn_sheet

最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(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学习资料

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【工具】Git的介绍与安装

目录 前言 1W:什么是Git? 2W:为什么使用Git? 3W:如何使用Git? Git的安装步骤 测试 3.1 桌面空白部分鼠标右击 3.2 选择 Open Git Bash here 3.3 输入 git -v 命令查看版本 Git区域分布 Git的工作…

Python列表及其操作详解,从此不再迷茫!

在前面的文章中,我们详细讲了六大数据类型中的数字类型,字符串类型。相信大家都能够熟练的掌握了。那么今天我们来讲解列表(list)。 这是一种常用且重要的数据类型,List可以用来存储一系列的元素,对于后期…

【漏洞复现】锐捷网络NBR700G 信息泄露

0x01 产品简介 锐捷网络NBR700G路由器是锐捷网络股份有限公司的一款无线路由设备。 0x02 漏洞概述 锐捷网络NBR700G路由器存在信息漏洞。未授权的攻击者可以通过该漏洞获取敏感信息。 0x03 测绘语句 fofa:body"系统负荷过高,导致网络拥塞&…

[LeetCode][LCR149]彩灯装饰记录 I——二叉树的层序遍历

题目 LCR 149. 彩灯装饰记录 I 给定一棵圣诞树,记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。按照从左到右的顺序返回每一层彩灯编号。 示例 1: 输入:root [8,17,21,18,null,null,6] 输出:[8,17,…

【Python-Docx库】Word与Python的完美结合

今天给大家分享Python处理Word的第三方库:Python-Docx。 什么是Python-Docx? Python-Docx是用于创建和更新Microsoft Word(.docx)文件的Python库。 日常需要经常处理Word文档,用Python的免费第三方包:Pyt…

Vue3学习记录(六)--- 组合式API之依赖注入和异步组件

一、依赖注入 1、简介 ​ 在前面的笔记中,我们学习过父组件向子组件传递数据时,需要借助props来实现。但如果父组件想要向孙子组件传递数据,那就要连续使用两层props逐级向下传递,如果要接收数据的是更深层的后代组件&#xff0…

管理技巧 | 提升团队效能:如何与下属进行有效沟通

在日常的管理工作中,沟通作为一项基础而关键的技能,往往决定了团队的协作效率和目标达成率。作为一个曾经从基层员工一路成长为管理者的Angelia老师,深知沟通的艺术对于激发团队潜力的重要性。本篇文章与大家分享几个关于如何与下属进行有效沟…

Oracle Essbase 多维库导入文件数据步骤操作

第一步: 先确定导入数据的维度数量(清楚自己需要导入什么数据和范围) 第二步: 设置加载的规则 1.创建规则 2.编辑规则-》打开数据文件 通过数据文件来确定加载规则的加载格式 先查看数据文件格式: 将数据文件导入&…

MySQL执行原理、存储引擎、索引模型简介

1.sql的执行原理 Connectors 连接、支持多种协议,各种语言 Management service 系统管理和控制工具,例如:备份、集群副本管理等 pool 连接池 sql interfaces sql接口-接收命令返回结果 parser 分析解析器:验证 optimizer 优化…

板材的加强筋优化

前言 本示例使用优化模块通过引入加强筋来优化简单板的刚度。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本示例说明了基于条件的简单支撑平板的加强筋优化。在加强筋优化过程中,壳单元的节点在壳法线的方向上移动,以增加惯性…

StableDiffusion3 官方blog论文研究

博客源地址:Stable Diffusion 3: Research Paper — Stability AI 论文源地址:https://arxiv.org/pdf/2403.03206.pdf Stability.AI 官方发布了Stable diffusion 3.0的论文研究,不过目前大家都沉浸在SORA带来的震撼中,所以这个水…

一. 并行处理与GPU体系架构-并行处理简介

目录 前言0. 简述1. 串行处理与并行处理的区别2. 并行执行3. 容易混淆的几个概念4. 常见的并行处理总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第一章——并行处…

window mysql 安装出现的问题

1.安装到最后时,报错:authentication_string doesnt have a default value 解决办法: 1.不要关掉该页面,点击skip。 然后单击 back 回退到如下界面 2.去掉 Enable Strict Mode。 不要勾选 2. 最后一步:Start Servic…

8.5 Springboot项目实战 Redis缓存热点数据

文章目录 前言一、缓存与数据库一致性二、Repository层 -- Cache Aside模式实操BookRepositoryBookRepositoryImpl2.1 查询2.2 修改2.3 删除2.4 扩展Mapper修改三、Service层调用修改四、测试前言 前两文我们讲解了如何在SpringBoot中整合Redis,接下来我们将进行

Spring学习笔记(八)基于Spring mvc技术的简单后台登录验证系统

一、需求分析 本项目主要是对用户登录状态的验证,只有登录成功的用户才可以访问系统中的资源。为了保证后台系统的页面不能被客户直接请求访问,本案例中所有的页面都存放在项目的WEB-INF 文件夹下,客户需要访问相关页面时,需要在…

[BJDCTF2020]----EzPHP

文章目录 pass-1pass-2pass-3pass-4pass-5pass-6pass-7 查看题目&#xff0c;右键源代码&#xff0c;发现GFXEIM3YFZYGQ4A&#xff0c;base64解码&#xff1a;1nD3x.php 访问1nD3x.php&#xff0c;代码审计&#xff0c;一步一步分析 <?php highlight_file(__FILE__); error…

HarmonyOS通过 axios发送HTTP请求

我之前的文章 HarmonyOS 发送http网络请求 那么今天 我们就来说说axios 这个第三方工具 想必所有的前端开发者都不会陌生 axios 本身也属于 HTTP请求 所以鸿蒙开发中也支持它 但首先 想在HarmonyOS中 使用第三方工具库 就要先下载安装 ohpm 具体可以参考我的文章 HarmonyOS 下…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

SpringBoot项目没有启动按键

问题一&#xff1a; pom文件正常&#xff0c;但是springboot包报红&#xff0c;同时Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found报红 解决办法&#xff1a; 无法识别使用哪个版本的 spring-boot-maven-plugin 包 <build><plugins>&…

【深度学习笔记】7_2 梯度下降和随机梯度下降

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.2 梯度下降和随机梯度下降 在本节中&#xff0c;我们将介绍梯度下降&#xff08;gradient descent&#xff09;的工作原理。虽然梯度…