构建动感的Shimmer效果:Jetpack Compose中的Compose-Shimmer库指南

构建动感的Shimmer效果:Jetpack Compose中的Compose-Shimmer库指南

compose-shimmerA simple shimmer library for Jetpack Compose.项目地址:https://gitcode.com/gh_mirrors/co/compose-shimmer

项目介绍

Compose-Shimmer 是一个专为Android Jetpack Compose设计的简单而优雅的闪烁(shimmer)动画库,由Valentin Ilk开发并托管在GitHub上。它允许开发者轻松地为UI元素添加流行的加载效果,模仿数据填充前的内容动态感。通过这个库,你可以无需繁琐编码即可实现平滑的闪烁动画,适用于任何可组合的修饰符中,如图片占位符、列表项等。

  • 特性
    • 灵活配置显示与隐藏的控制。
    • 可以集成到自定义Material主题中。
    • 支持多平台(包括Android、iOS、JVM Desktop、JS和WASM)。
    • 提供了简洁的主题支持和记忆功能。

项目快速启动

要快速启用Shimmer效果,首先确保你的项目能够访问Maven Central仓库。接着,在你的构建文件(build.gradle.ktsbuild.gradle)中添加以下依赖:

dependencies {
    implementation("com.valentinilk.shimmer:compose-shimmer:1.3.1")
}

之后,在你的Jetpack Compose UI代码里,只需要简单应用shimmer修饰符到任何想要展示闪烁效果的组件上,例如创建一个基本的闪烁占位符:

@Composable
fun SimpleShimmerEffect() {
    Row(modifier = Modifier.fillMaxWidth().shimmer()) {
        Box(size = Size(80.dp, 80.dp), modifier = Modifier.background(Color.LightGray))
            .padding(8.dp)
    }
}

这段代码会在Row内创建一个带有Shimmer效果的Box,模拟加载时的视觉过渡。

应用案例和最佳实践

Shimmer与现有组件结合

将Shimmer用于Coil的AsyncImage或其他视图时,可以通过条件判断来控制动画的显示与否,提升用户体验:

var isLoading by remember { mutableStateOf(true) }

AsyncImage(
    model = imageUrl,
    placeholder = PainterResource(id = R.drawable.placeholder),
    contentDescription = "示例图片",
    loading = {
        if (isLoading) {
            Box(modifier = Modifier.shimmer())
        }
    },
    onSuccess = { data ->
        isLoading = false // 图片加载完成,关闭Shimmer
    }
)

主题整合

为了全局统一Shimmer的风格,推荐在你的主题中使用ShimmerTheme

CompositionLocalProvider(LocalShimmerTheme provides yourCustomShimmerTheme) {
    // 你的整个应用或者特定部分的Compose代码
}

这样可以避免重复设置,并且便于管理Shimmer的样式。

典型生态项目

虽然具体的“典型生态项目”直接关联较少提及,但Compose-Shimmer自身作为一个生态组件,广泛应用于各种需要装载动画的场景,比如新闻应用的列表项加载、电商平台的商品卡片加载等。开发者可以根据实际需求,将其融入各自的应用中,提升用户界面的交互体验。由于是独立的库,它可以轻松地与其他Jetpack Compose生态内的库和技术相结合,形成丰富的UI表现。


以上就是对Compose-Shimmer库的基本介绍、快速入门指南以及应用实践的概览,希望能帮助开发者们快速上手这一强大工具,增强应用的交互性和美观度。

compose-shimmerA simple shimmer library for Jetpack Compose.项目地址:https://gitcode.com/gh_mirrors/co/compose-shimmer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虞亚竹Luna

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值