Flutter占位加载动画插件easy_shimmer的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter占位加载动画插件easy_shimmer的使用

特性

easy_shimmer 是一个Flutter插件,可以帮助你在任何小部件中添加自适应的闪烁效果(shimmer),适用于Android和iOS平台。

device-2024-03-07-164828 device-2024-03-07-165746

入门指南

easy_shimmer 是一个改进版的闪烁效果插件,你可以将其作为任何Flutter小部件的扩展来使用。

使用方法

以下是一个完整的示例代码,展示了如何在Flutter项目中使用 easy_shimmer 插件:

import 'package:flutter/material.dart';
import 'package:easy_shimmer/easy_shimmer.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Easy shimmer demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const AdaptiveShimmer(),
    );
  }
}

class AdaptiveShimmer extends StatelessWidget {
  const AdaptiveShimmer({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Easy Shimmer Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            // 将任何文本小部件转换为带有闪烁效果的小部件
            const Text('Easy shimmer with Text widget').easyShimmer(
              baseColor: Colors.grey[300]!, // 基础颜色
              highlightColor: Colors.grey[100]!, // 高亮颜色
            ),
            const SizedBox(height: 40), // 间距

            // 带有闪烁效果的SizedBox示例
            const SizedBox(
              height: 200,
              width: 200,
            ).easyShimmer(
              baseColor: Colors.grey[300]!,
              highlightColor: Colors.grey[100]!,
            ),
            const SizedBox(height: 40), // 间距

            // 更多示例:带有圆角的Container
            Container(
              height: 100,
              width: double.infinity,
              decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(16),
                color: Colors.grey[300],
              ),
            ).easyShimmer(
              baseColor: Colors.grey[300]!,
              highlightColor: Colors.grey[100]!,
            ),
            const SizedBox(height: 40), // 间距

            // 列表项示例
            Row(
              children: [
                const CircleAvatar(
                  radius: 24,
                  backgroundColor: Colors.grey[300],
                ).easyShimmer(
                  baseColor: Colors.grey[300]!,
                  highlightColor: Colors.grey[100]!,
                ),
                const SizedBox(width: 16), // 间距
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Container(
                      width: 200,
                      height: 16,
                      color: Colors.grey[300],
                    ).easyShimmer(
                      baseColor: Colors.grey[300]!,
                      highlightColor: Colors.grey[100]!,
                    ),
                    const SizedBox(height: 8), // 间距
                    Container(
                      width: 150,
                      height: 16,
                      color: Colors.grey[300],
                    ).easyShimmer(
                      baseColor: Colors.grey[300]!,
                      highlightColor: Colors.grey[100]!,
                    ),
                  ],
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter占位加载动画插件easy_shimmer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter占位加载动画插件easy_shimmer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用easy_shimmer插件来实现占位加载动画的示例代码。easy_shimmer是一个简单而强大的Flutter包,用于在数据加载时显示占位符动画。

步骤 1: 添加依赖

首先,你需要在pubspec.yaml文件中添加easy_shimmer依赖:

dependencies:
  flutter:
    sdk: flutter
  easy_shimmer: ^2.0.0  # 确保使用最新版本,版本号可能需要根据实际情况调整

然后运行flutter pub get来安装依赖。

步骤 2: 导入包

在你的Dart文件中导入easy_shimmer包:

import 'package:flutter/material.dart';
import 'package:easy_shimmer/easy_shimmer.dart';

步骤 3: 创建占位符动画

下面是一个完整的示例,展示如何使用EasyShimmer来创建一个简单的列表占位符动画:

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter EasyShimmer Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('EasyShimmer Demo'),
        ),
        body: EasyShimmerList(
          itemCount: 10,  // 占位符的数量
          itemBuilder: (context, index) {
            return Padding(
              padding: const EdgeInsets.symmetric(vertical: 8.0),
              child: Row(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Container(
                    width: 50,
                    height: 50,
                    color: Colors.grey[300]!,
                    margin: EdgeInsets.only(right: 16),
                  ),
                  Expanded(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        SizedBox(
                          width: double.infinity,
                          height: 20,
                          child: Container(
                            color: Colors.grey[300]!,
                          ),
                        ),
                        SizedBox(
                          width: double.infinity,
                          height: 12,
                          child: Container(
                            color: Colors.grey[300]!,
                          ),
                        ),
                      ],
                    ),
                  ),
                ],
              ),
            );
          },
        ),
      ),
    );
  }
}

解释

  1. EasyShimmerList:这是一个方便的包装器,用于创建列表占位符动画。
  2. itemCount:指定占位符的数量。
  3. itemBuilder:构建每个占位符项。这里我们创建了一个简单的包含图片和文本的列表项占位符。

运行应用

保存代码并运行应用,你应该会看到一个带有占位符动画的屏幕,这些占位符模拟了一个正在加载的列表。

这个示例展示了如何使用easy_shimmer创建一个基本的占位符动画。根据你的需求,你可以自定义占位符的样式和布局。

回到顶部