Flutter卡片轮播插件flutter_cards_reel的使用

Flutter卡片轮播插件flutter_cards_reel的使用

流畅且平滑的卡片轮播列表组件,遵循标准的Flutter Slivers协议。

截图

开始使用

只需在pubspec.yaml文件中添加依赖项:

dependencies:
  flutter_cards_reel: any

使用方法

卡片轮播组件遵循常见的Flutter列表协议。

SliverCardsReel

SliverCardsReel实现了所有低级别的slivers协议逻辑,因此可以与CustomScrollView内的任何其他内容组合在一起:

CustomScrollView(
  slivers: [
    SliverList(/* 其他sliver */),
    SliverCardsReel(
      itemExtent: 400, // 每个卡片的高度
      itemHeaderExtent: 100, // 卡片头部的高度
      delegate: SliverChildBuilderDelegate(
        (context, index) {
          return Padding(
            padding: const EdgeInsets.all(10),
            child: SizedBox(
              height: 400,
              child: ColorfulCard(index), // 自定义卡片组件
            ),
          );
        },
        childCount: 4, // 卡片数量
      ),
    ),
    SliverList(/* 其他sliver */),
  ],
)

CardsReelView

CardsReelView提供了类似于ListViewchildrenbuilder选项的标准API:

CardsReelView.builder(
  itemExtent: 400, // 每个卡片的高度
  itemHeaderExtent: 100, // 卡片头部的高度
  itemCount: 5, // 卡片数量
  itemBuilder: (context, index) {
    return Padding(
      padding: const EdgeInsets.all(10),
      child: SizedBox(
        height: 400,
        child: ColorfulCard(index), // 自定义卡片组件
      ),
    );
  },
)

更多关于Flutter卡片轮播插件flutter_cards_reel的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter卡片轮播插件flutter_cards_reel的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用 flutter_cards_reel 插件来实现卡片轮播的示例代码。这个插件允许你在 Flutter 应用中创建一个卡片轮播视图,非常适合展示图片、广告或任何需要轮播显示的内容。

首先,确保你已经在 pubspec.yaml 文件中添加了 flutter_cards_reel 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_cards_reel: ^最新版本号  # 请替换为实际的最新版本号

然后运行 flutter pub get 来获取依赖。

接下来,是一个简单的示例代码,展示如何使用 flutter_cards_reel

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Cards Reel Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: CardsReelScreen(),
    );
  }
}

class CardsReelScreen extends StatelessWidget {
  final List<String> images = [
    'https://example.com/image1.jpg',
    'https://example.com/image2.jpg',
    'https://example.com/image3.jpg',
    // 添加更多图片URL
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Cards Reel Demo'),
      ),
      body: Center(
        child: CardsReel(
          // 设置卡片数据
          cards: List.generate(
            images.length,
            (index) => CardReelData(
              image: NetworkImage(images[index]),
              // 可以添加更多自定义数据,比如标题、描述等
            ),
          ),
          // 设置轮播配置
          cardAspectRatio: 1.2, // 卡片宽高比
          cardWidth: double.infinity, // 卡片宽度,这里设置为全屏宽度
          autoplay: true, // 是否自动播放
          autoplayDuration: Duration(seconds: 3), // 自动播放间隔时间
          cardAlignment: CardAlignment.center, // 卡片对齐方式
          indicatorPosition: IndicatorPosition.bottom, // 指示器位置
          indicatorColor: Colors.white, // 指示器颜色
          indicatorSelectedColor: Colors.blue, // 选中指示器颜色
          indicatorPadding: EdgeInsets.symmetric(horizontal: 10), // 指示器内边距
          indicatorSize: 8, // 指示器大小
          indicatorActiveSize: 12, // 选中指示器大小
          borderRadius: BorderRadius.circular(16), // 卡片圆角
          overlayColor: Colors.black.withOpacity(0.3), // 点击卡片时的覆盖色
        ),
      ),
    );
  }
}

// CardReelData 类用于存储每张卡片的数据
class CardReelData {
  final ImageProvider image;
  // 可以添加更多字段,如 String title, String description 等

  CardReelData({required this.image});
}

在这个示例中,我们创建了一个简单的 Flutter 应用,其中包含一个使用 flutter_cards_reel 插件实现的卡片轮播视图。每张卡片显示一张网络图片,你可以根据需要添加更多自定义数据,如标题、描述等。

注意:

  • CardReelData 类用于存储每张卡片的数据,你可以根据实际需求扩展这个类。
  • CardsReel 组件接受多个配置参数,用于自定义卡片轮播的行为和外观。

确保替换 images 列表中的图片 URL 为有效的图片地址,以便在模拟器或真实设备上看到效果。

回到顶部