HarmonyOS 开发-使用SideBarContainer侧边栏淡入淡出动效实现案例

news2024/11/26 21:30:56

介绍

在2in1或平板上,群聊侧边栏是一种较为常用的功能,虽然HarmonyOS已经具备了基本的动效,但是部分情况下开发者可能有定制侧边栏动效的需求,本例主要介绍了如何基于显式动画实现侧边栏的淡入淡出动效。

效果图预览

使用说明

  1. 点击右侧三角按钮进行侧边栏的显示与隐藏
  2. 当前动效过渡时间较短,如果要更清晰地观察动画效果,可以将动效的持续时间SIDEBAR_ANIMATION_DURATION
    更改长一点,如1000
  3. 注意,由于手机屏幕边缘较难响应事件,请用2in1或或平板进行测试

实现思路

  1. 由于SideBarContainer的controlButton无法实现对其动效的自定义,所以需要禁用默认的button,通过自定义的Button来控制SideBar的显隐,并为SideBar添加了透明度的变化动效
    SideBarContainer(this.sidebarType) {
      SideBarView()
        .opacity(this.isShowSideBar ? SideBarAnimationViewConstants.SIDEBAR_OPACITY_SHOW : SideBarAnimationViewConstants.SIDEBAR_OPACITY_HIDDEN)

      SideBarContentView({ isShowSideBar: this.isShowSideBar })
    }
    .showSideBar(this.isShowSideBar)
    .showControlButton(SideBarAnimationViewConstants.SIDEBAR_IS_SHOW_BUTTON)
    .autoHide(SideBarAnimationViewConstants.SIDEBAR_IS_AUTO_HIDE)
  1. 通过显式动画控制侧边栏的显隐,以便实现自定义动效
   animateTo({ duration: SideBarAnimationViewConstants.SIDEBAR_ANIMATION_DURATION }, () => {
       this.isShowSideBar = !this.isShowSideBar;
   })

工程结构&模块类型

   sidebaranimation                                // har
   |---constants                                   // 常量定义
   |---view
   |   |---SideBarAnimationView.ets                // 入口组件 
   |   |---SideBarContentView.ets                  // 内容区组件
   |   |---SideBarView.ets                         // 侧边栏组件

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

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

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

相关文章

秋招算法刷题6

20240408 1.两数之和 &#xff08;时间复杂度是O&#xff08;n的平方&#xff09;&#xff09; public int[] twoSum(int[] nums, int target){int nnums.length; for(int i0;i<n;i){ for(int j1;j<n;j){ if(nums[i][j]target){ …

基于逻辑回归和支持向量机的前馈网络进行乳腺癌组织病理学图像分类

CNN&#xff08;卷积神经网络&#xff09;通过使用反向传播方法来学习特征&#xff0c;这种方法需要大量的训练数据&#xff0c;并且存在梯度消失问题&#xff0c;从而恶化了特征学习。 CNN卷积神经网络 CNN由一个多层神经网络组成&#xff0c;该网络从标记的训练数据集中学习…

数据仓库实践

什么是数据仓库&#xff1f; 数据仓库是一个用于存储大量数据并支持数据分析与报告的系统。它通常用于集成来自不同来源的数据&#xff0c;提供一个统一的视图&#xff0c;以便进行更深入的分析和决策。 数据仓库的主要优势&#xff1f; 决策支持&#xff1a;为企业决策提供可靠…

Javascript进阶内容

1. 作用域 1.1 局部作用域 局部作用域分为函数作用域 和 块级作用域 块级作用域就是用 {} 包起来的&#xff0c;let、const声明的变量就是产生块作用域&#xff0c;var不会&#xff1b;不同代码块之间的变量无法互相访问&#xff0c;里面的变量外部无法访问 1.2 全局作用域…

【神经网络】循环神经网络RNN和长短期记忆神经网络LSTM

循环神经网络RNN和长短期记忆神经网络LSTM 欢迎访问Blog总目录&#xff01; 文章目录 循环神经网络RNN和长短期记忆神经网络LSTM1.循环神经网络RNN&#xff08;Recurrent Neural Network&#xff09;1.1.学习链接1.2.RNN结构1.3.RNN缺点 2.长短期记忆递归神经网络LSTM&#x…

本地MinIO存储服务通过Java程序结合cpolar实现远程连接上传文件

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统&#xff0c;它可以100%的运行在标准硬件上&#xff0c;即X86等…

回归测试覆盖率指的是什么?

定义 回归测试是指修改了旧代码后&#xff0c;重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。 在软件开发过程当中&#xff0c;一旦软件代码做了修改&#xff0c;就有可能引入新的问题&#xff0c;所以这个时候就需要把已经完成了的验证用例重新跑一下&…

智能工业-方案优势

节省成本 ─键修改所有仓储物料信息&#xff0c;无需人工打印、更换仓位卡&#xff0c;降低人力成本;全程无纸化操作&#xff0c;节约材料成本;网络融合方案&#xff0c;降低硬件成本。 高效运营 优化信息变更、陈列、拣货等工作流程&#xff0c;全程APP管理&#xff0c;流程…

Windows Nginx 启动

先解压 nginx安装包&#xff0c;进入到安装目录下(配置环境变量没有用) 解压后的目录结构如上。 #启动服务 默认是80端口&#xff0c; #如果端口被占用&#xff0c;是启动不了的&#xff0c;会生成error log在log目录下 start nginx#停止nginx 服务 nginx -s stop#重新加载配置…

浅析安全传输协议HTTPS之“S”

当前互联网&#xff0c;在各大浏览器厂商和CA厂商的推动下&#xff0c;掀起了一股HTTPS应用浪潮。为了让大家更好的了解HTTPS&#xff0c;本文给大家介绍关于HTTPS 中的S一个整体的认识。从其产生的历史背景、设计目标说起&#xff0c;到分析其协议设计结构、交互流程是如何实现…

linux中查看占用端口的进程方法

1、netstat -tlnp | grep 端口号 netstat -tlnp|grep 3306 其中&#xff1a;95115是进程号&#xff0c;mysqld是进程名称 2、ss -ltnp | grep 端口号 注意&#xff1a;-tlnp和-ltnp ss -ltnp|grep 3306其中&#xff1a;mysqld是进程名称&#xff0c;95115是进程id 3、lsof…

Z变换与传递函数代码化

对于自动控制而言&#xff0c;其关键在于传递函数方程&#xff0c;根据其特性设计出控制器&#xff0c;控制器也是S域的传递函数&#xff0c;那么如何将传递函数用代码的形式表现出来呢&#xff1f;以下将介绍这种工程方法 1、Z变换 对于一个确定的传递函数&#xff0c;如下 …

vue3+高德地图,使用抛物线连接两点,实现线路脉冲和呼吸灯动画效果

最终实现效果 一&#xff1a;版本vue3jsAPI2.0loca2.0.0 二&#xff1a;下载地图加载器 npm i amap/amap-jsapi-loader --save 高德地图jsApi2.0&#xff0c;点击查看官网介绍 三&#xff1a;写成一个组件&#xff0c;哪里使用哪里引入即可&#xff0c;代码如下 <scrip…

深度揭秘:全氟己酮自动灭火毯的原理是什么?

全氟己酮自动灭火毯是近年来很受欢迎的新型消防灭火装置&#xff0c;它不仅高效环保、使用简单、无需安装任何附加设备&#xff0c;还可以主动感应到火灾并自动灭火。为什么它能够做到这一点呢&#xff1f;这要从全氟己酮自动灭火毯的原理说起。 全氟己酮自动灭火毯的原理是什…

JAVA 并发编程之死锁的产生及避免

死锁的产生 死锁可以理解为&#xff0c;在多线程并发竞争资源的环境下&#xff0c;在各自拥有锁的情况下&#xff0c;又去尝试获取对方的锁&#xff0c;从而造成的一种阻塞的现象&#xff0c;若无外力作用&#xff0c;它们都将一直阻塞下去。 代码示例&#xff1a; public cl…

分享|创业老阳推荐的Temu蓝海项目到底怎么样?

在当今竞争激烈的创业市场中&#xff0c;寻找一个具有潜力的蓝海项目成为了众多创业者的梦想。近日&#xff0c;创业老阳推荐的Temu蓝海项目引起了广泛关注。那么&#xff0c;这个项目到底怎么样呢?让我们一起来探讨一下。 首先&#xff0c;Temu蓝海项目在定位上具有显著优势 …

YOLOv8改进 添加大核卷积序列注意力机制LSK

一、Large Separable Kernel Attention论文 论文地址:2309.01439.pdf (arxiv.org) 二、Large Separable Kernel Attention注意力结构 LSK通过使用大型可分离卷积核来提升注意力机制的效果。在传统的注意力机制中,常用的是小型卷积核,如1x1卷积,来计算注意力权重和特征表示…

Junit单元测试框架 --java学习笔记

单元测试 就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 之前是如何进行单元测试的?有什么问题? 只能在main方法编写测试代码&#xff0c;去调用其他方法进行测试无法实现自动化测试&#xff0c;一个方法测试失败&#xff0c;可能影响其他方法…

poi

文章目录 字号对照 字号对照

MQ中的交换机与队列

交换机与队列的介绍 1.流程 首先先介绍一个简单的一个消息推送到接收的流程&#xff0c;提供一个简单的图 黄色的圈圈就是我们的消息推送服务&#xff0c;将消息推送到 中间方框里面也就是 rabbitMq的服务器&#xff0c;然后经过服务器里面的交换机、队列等各种关系&#xff…