尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

MaterialElevationScale 高度缩放动画教程:用 material-motion-compose 轻松复刻 Material Design 层级变化

MaterialElevationScale 高度缩放动画教程:用 material-motion-compose 轻松复刻 Material Design 层级变化 MaterialElevationScale 高度缩放动画教程用 material-motion-compose 轻松复刻 Material Design 层级变化【免费下载链接】material-motion-composeMaterial Motion for Jetpack Compose and Compose Multiplatform项目地址: https://gitcode.com/gh_mirrors/ma/material-motion-composeMaterialElevationScale 高度缩放动画是 material-motion-compose 库提供的经典 Material Design 动效之一页面切换时新内容从 85% 大小淡入放大、旧内容缩小淡出模拟元素升起的层级感。这篇教程面向 Compose 新手用最简单的方式带你掌握这个动效并为 Jetpack Compose 与 Compose MultiplatformAndroid / iOS / Desktop / Web提供统一写法。什么是 MaterialElevationScale 高度缩放动画Material Design 规范中层级Elevation变化通常伴随缩放与淡入淡出让界面切换更有物理感。material-motion-compose 将这个规范封装成两个现成的过渡函数materialElevationScaleIn()新页面以 0.85 透明度、0.85 缩放比例淡入并放大到完整尺寸materialElevationScaleOut()旧页面缩小到 0.85 并淡出让出视觉焦点简单说一个页面推上来另一个页面退下去非常适合详情页、弹层、标签页等场景。最快上手方法三步接入高度缩放动画第一步引入依赖在build.gradle.kts中添加依赖Maven Central 即可无需额外仓库dependencies { implementation(io.github.fornewid:material-motion-compose-core:最新版本) }第二步用 MaterialMotion 容器包裹内容material-motion-compose 的核心容器是MaterialMotion它负责监听状态变化并自动触发动画。你只需要把前进和返回两种转场组合起来MaterialMotion( targetState forward, transitionSpec { when { targetState - materialElevationScaleIn() togetherWith translateYOut() else - translateYIn() togetherWith materialElevationScaleOut() } }, pop forward.not(), ) { forward - // 这里放你的页面内容 }第三步切换状态即可触发动画只需改变targetState例如点击按钮切换forward布尔值高度缩放动画就会自动播放无需手动控制任何 Animator。想直观感受效果可以直接运行项目自带的示例工程示例源码在 MaterialElevationScaleScreen.kt配合 ForwardBackwardContents.kt 即可看到完整的前进/后退演示。参数详解如何调整缩放比例与动画时长materialElevationScaleIn与materialElevationScaleOut各提供三个可选参数按需传入即可参数默认值作用initialAlpha/targetAlpha0.85f起始 / 结束透明度initialScale/targetScale0.85f起始 / 结束缩放比例durationMillis300ms动画时长毫秒例如想让动画更轻快把时长缩短到 200msmaterialElevationScaleIn(durationMillis 200)默认时长 300ms 与淡入淡出等常量统一定义在 MotionConstants.kt 中方便全局调优。完整实现见 MaterialElevationScale.kt。为什么选择 material-motion-compose 实现层级变化✅符合 Material 规范严格复刻 Material Design 官方 Motion System✅跨平台一致同一套代码运行在 Android、iOS、Desktop、WebWasm✅零样板代码无需手写animateFloat和Animatable一个函数搞定✅可组合性强缩放可自由搭配translateYIn、fadeIn等其他动效组合出更丰富的转场核心入口 MaterialMotion.kt 基于 Compose 的AnimatedContent实现内部自动处理新旧内容的层级顺序contentZIndex保证前进时新页面始终盖在旧页面上观感自然流畅。常见问题速查Q能只缩放不淡入淡出吗可以把initialAlpha设为 1.0f 即可保留纯缩放效果。Q想在不同页面用不同动效怎么办在transitionSpec里用when(targetState)分支判断自由组合各种 motion 即可。Q如何体验完整 Democlone 仓库地址https://gitcode.com/gh_mirrors/ma/material-motion-compose后运行 sample 模块官方文档见 core.md里面还有 Shared Axis、Fade Through、Hold、CircularReveal 等全套动效演示。总结MaterialElevationScale 高度缩放动画是提升 App 品质感最低成本高回报的动效之一。借助 material-motion-compose你只需要几行代码就能获得符合 Material Design 规范、且跨 Android / iOS / Desktop 一致的层级变化体验。现在就去你的项目里试试吧【免费下载链接】material-motion-composeMaterial Motion for Jetpack Compose and Compose Multiplatform项目地址: https://gitcode.com/gh_mirrors/ma/material-motion-compose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表