Flutter卡片滑动匹配插件scrumlab_flutter_tindercard的使用

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

Flutter卡片滑动匹配插件scrumlab_flutter_tindercard的使用

scrumlab_flutter_tindercard

Tinder/TanTan 卡片组件。

Pub Closed

截图

示例

开始使用

  1. pubspec.yaml 文件中添加依赖:
    dependencies:
      scrumlab_flutter_tindercard: ^x.x.x
    
  2. 导入库:
    import 'package:scrumlab_flutter_tindercard/scrumlab_flutter_tindercard.dart';
    
  3. 在你的布局中添加 TinderSwapCard 组件,并编写单个卡片布局。这样你就可以得到一个类似探探的滑动卡片组件。
  4. 使用 CardSwipeCompleteCallback 获取滑动方向和索引。
  5. 使用 CardController 触发外部滑动。初始化一个 CardController 并将其作为参数传递给组件,然后调用 triggerLefttriggerRight 方法来触发滑动。
  6. 使用 CardDragUpdateCallback 获取正在滑动卡片的详细信息。

示例

你可以在这里查看完整的示例代码:查看示例

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Tinder Cards')),
        body: TinderSwapCardDemo(),
      ),
    );
  }
}

class TinderSwapCardDemo extends StatefulWidget {
  [@override](/user/override)
  _TinderSwapCardDemoState createState() => _TinderSwapCardDemoState();
}

class _TinderSwapCardDemoState extends State<TinderSwapCardDemo> {
  final List<String> cards = [
    'Card 1',
    'Card 2',
    'Card 3',
    // 添加更多卡片
  ];

  final CardController cardController = CardController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        children: <Widget>[
          Expanded(
            child: TinderSwapCard(
              swipeUp: false,
              swipeDown: false,
              totalNum: cards.length,
              stackNum: 3,
              cardController: cardController,
              cardBuilder: (cardIndex, val) {
                return Container(
                  alignment: Alignment.center,
                  color: Colors.lightBlue,
                  child: Text(cards[cardIndex]),
                );
              },
              cardDragEndCallback: (cardIndex, val) {
                print('Card $cardIndex was dragged');
              },
              swipeCompleteCallback: (cardIndex, val) {
                print('Card $cardIndex was swiped ${val.direction}');
              },
            ),
          ),
          ElevatedButton(
            onPressed: () {
              cardController.triggerLeft();
            },
            child: Text('Swipe Left'),
          ),
          ElevatedButton(
            onPressed: () {
              cardController.triggerRight();
            },
            child: Text('Swipe Right'),
          ),
        ],
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用scrumlab_flutter_tindercard插件的一个示例代码案例。这个插件允许你创建类似Tinder的卡片滑动效果,非常适合制作匹配类应用。

首先,确保你的Flutter项目已经创建,并且在pubspec.yaml文件中添加scrumlab_flutter_tindercard依赖:

dependencies:
  flutter:
    sdk: flutter
  scrumlab_flutter_tindercard: ^x.y.z  # 请替换为最新版本号

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

接下来,在你的主Dart文件中(通常是main.dart),你可以按照以下方式使用TinderCard组件:

import 'package:flutter/material.dart';
import 'package:scrumlab_flutter_tindercard/tinder_card.dart';

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

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

class TinderCardExample extends StatefulWidget {
  @override
  _TinderCardExampleState createState() => _TinderCardExampleState();
}

class _TinderCardExampleState extends State<TinderCardExample> {
  List<String> images = [
    'https://via.placeholder.com/350x150?text=Card+1',
    'https://via.placeholder.com/350x150?text=Card+2',
    'https://via.placeholder.com/350x150?text=Card+3',
    // 添加更多图片URL
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Tinder Card Demo'),
      ),
      body: Center(
        child: TinderSwapCard(
          orientation: AminoOrientation.BOTTOM,
          totalNum: images.length,
          swipeCompleteCallback: (cardStack, cardIndex) {
            print('Card $cardIndex swiped!');
          },
          cardBuilder: (context, index) => Card(
            elevation: 5,
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(15),
            ),
            child: ClipRRect(
              borderRadius: BorderRadius.circular(15),
              child: Image.network(images[index], fit: BoxFit.cover, width: double.infinity),
            ),
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几步:

  1. 添加依赖:在pubspec.yaml中添加scrumlab_flutter_tindercard
  2. 创建主应用:在main.dart中创建一个简单的Flutter应用。
  3. 定义图片列表:在_TinderCardExampleState类中,我们定义了一个包含图片URL的列表。
  4. 构建卡片视图:使用TinderSwapCard组件来显示卡片,并设置卡片的方向、总数以及滑动完成时的回调。
  5. 自定义卡片:通过cardBuilder参数自定义每张卡片的外观,这里我们使用了Card组件和Image.network来显示网络图片。

这个示例展示了如何使用scrumlab_flutter_tindercard插件创建一个基本的卡片滑动效果。你可以根据需要进一步自定义卡片样式、添加更多功能(如喜欢/不喜欢按钮)等。

回到顶部