HarmonyOS NEXT应用开发之SideBarContainer侧边栏淡入淡出动效实现案例

news/2024/6/3 16:46:20 标签: harmonyos, 华为, android, 移动开发, 前端, 鸿蒙开发

介绍

在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                         // 侧边栏组件

模块依赖

  1. 路由模块:供entry模块实现路由导航
  2. utils模块:功能介绍

参考资料

  1. SideBarContainer
  2. 显式动画
  3. 计算特性
    为了能让大家更好的学习鸿蒙(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.鸿蒙南向开发方向

腾讯T10级高工技术,安卓全套VIP课程全网免费送:https://qr21.cn/D2k9D5


http://www.niftyadmin.cn/n/5438475.html

相关文章

牛客系列之变种水仙花数与删除序列中的某个数

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

ideaSSM失物招领管理系统网页模式开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea ssm 失物招领管理系统是一套完善的完整信息管理系统,结合SSM框架完成本系统SpringMVC spring mybatis ,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数…

Python入门(小白友好)

知识图谱 搭建环境 安装Python:Download Python | Python.org 安装PyCharm:Download PyCharm: The Python IDE for data science and web development by JetBrains 注意:专业版本是收费的,新手小白使用社区版(community)即可 创建第一个项目: 一些PyCharm的设置(也适用…

java算法题每日多道二

14. 最长公共前缀 题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl&q…

2024年阿里云服务器搭建幻兽帕鲁游戏_保姆级教程

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

000_【基础篇】SpringBoot概述

介绍 springboot 是 spring 提供的一个子项目,用于快速构建 spring 应用程序 传统的 SSM 框架要导入很多依赖的 jar 包以及配置很多的配置文件,麻烦、繁琐 springboot 特性 springboot 主要(还有其他的一些特性)有起步依赖和…

科研学习|论文解读——一种用于短文本消息中的释义检测的深度网络模型(IPM, 2018)

论文原标题 A deep network model for paraphrase detection in short text messages 摘要 本文研究释义检测,即识别语义相同的句子。检测用自然语言编写的相似句子的能力对一些应用程序至关重要,如文本挖掘、文本摘要、剽窃检测、作者身份认证和问题回答。认识到这一…

Transformer的前世今生 day03(Word2Vec、如何使用在下游任务中)

前情回顾 由上一节,我们可以得到: 任何一个独热编码的词都可以通过Q矩阵得到一个词向量,而词向量有两个优点: 可以改变输入的维度(原来是很大的独热编码,但是我们经过一个Q矩阵后,维度就可以控…