Flutter卡片滑动匹配插件scrumlab_flutter_tindercard的使用
Flutter卡片滑动匹配插件scrumlab_flutter_tindercard的使用
scrumlab_flutter_tindercard
Tinder/TanTan 卡片组件。
截图
开始使用
- 在
pubspec.yaml
文件中添加依赖:dependencies: scrumlab_flutter_tindercard: ^x.x.x
- 导入库:
import 'package:scrumlab_flutter_tindercard/scrumlab_flutter_tindercard.dart';
- 在你的布局中添加
TinderSwapCard
组件,并编写单个卡片布局。这样你就可以得到一个类似探探的滑动卡片组件。 - 使用
CardSwipeCompleteCallback
获取滑动方向和索引。 - 使用
CardController
触发外部滑动。初始化一个CardController
并将其作为参数传递给组件,然后调用triggerLeft
或triggerRight
方法来触发滑动。 - 使用
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),
),
),
),
),
);
}
}
在这个示例中,我们做了以下几步:
- 添加依赖:在
pubspec.yaml
中添加scrumlab_flutter_tindercard
。 - 创建主应用:在
main.dart
中创建一个简单的Flutter应用。 - 定义图片列表:在
_TinderCardExampleState
类中,我们定义了一个包含图片URL的列表。 - 构建卡片视图:使用
TinderSwapCard
组件来显示卡片,并设置卡片的方向、总数以及滑动完成时的回调。 - 自定义卡片:通过
cardBuilder
参数自定义每张卡片的外观,这里我们使用了Card
组件和Image.network
来显示网络图片。
这个示例展示了如何使用scrumlab_flutter_tindercard
插件创建一个基本的卡片滑动效果。你可以根据需要进一步自定义卡片样式、添加更多功能(如喜欢/不喜欢按钮)等。