Flutter自定义点赞按钮插件custom_like_button的使用

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

Flutter自定义点赞按钮插件custom_like_button的使用

custom_like_button 是一个用于实现点赞和取消点赞功能的 Flutter 插件。它支持动画效果和颜色变化。✨

通过这个插件,你可以使用自定义图标或任何自定义小部件(无状态或有状态)来实现点赞功能。

非常平滑的动画效果,支持 Android、iOS、Web 应用和桌面应用。

使用场景

我们构建这个插件的原因是:

  • 希望拥有带有翻转动画的自定义图标。
  • 能够改变图标的颜色和大小。

即将推出的功能

  • 提供对资产图像(SVG、PNG)和 Material 图标的支持,并添加新的更新。
  • 支持自定义动画持续时间。

安装

首先,创建一个新的 Flutter 项目:

flutter create MyApp

然后,在你的 pubspec.yaml 文件中添加依赖项:

dependencies:
  custom_like_button: ^x.y.z

或者在项目的根目录下运行以下命令:

flutter pub add custom_like_button

在你的库文件中添加以下导入语句:

import 'package:custom_like_button/custom_like_button.dart';

使用

下面是一个简单的示例,展示了如何使用 CustomLikeButton 组件。

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text("点赞按钮示例"),
        ),
        body: SafeArea(
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                const SizedBox(height: 20),
                CustomLikeButton(
                  likeCount: 50,
                  size: 50,
                  isLiked: false,
                  likeBuilder: (bool isLiked) {
                    return Icon(
                      isLiked ? Icons.favorite : Icons.favorite_border,
                      color: Colors.red,
                      size: 50,
                    );
                  },
                  onTap: () {
                    print('点赞');
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

构造函数参数说明

参数 默认值 描述 必填
isLiked - 是否已点赞,true 表示已点赞,false 表示未点赞。
size - 图标的大小。
likeCount - 点赞数量。
likeBuilder - 自定义点赞图标。
onTap - 点击事件回调。

完整示例

下面是一个完整的示例代码,展示了如何在 Flutter 中使用 CustomLikeButton 插件。

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text("点赞按钮示例"),
        ),
        body: SafeArea(
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                const SizedBox(height: 20),
                CustomLikeButton(
                  likeCount: 50,
                  size: 50,
                  isLiked: false,
                  likeBuilder: (bool isLiked) {
                    return Icon(
                      isLiked ? Icons.favorite : Icons.favorite_border,
                      color: Colors.red,
                      size: 50,
                    );
                  },
                  onTap: () {
                    print('点赞');
                  },
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter自定义点赞按钮插件custom_like_button的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义点赞按钮插件custom_like_button的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用custom_like_button插件的示例代码。这个插件允许你创建一个自定义的点赞按钮,并可以处理点赞和取消点赞的状态。

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

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

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

接下来,你可以在你的Dart文件中使用这个插件。下面是一个完整的示例,展示如何集成和使用custom_like_button

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

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool isLiked = false;
  int likeCount = 0;

  void _onLikeChanged(bool isLiked, int likeCount) {
    setState(() {
      this.isLiked = isLiked;
      this.likeCount = likeCount;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Custom Like Button Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            CustomLikeButton(
              isLiked: isLiked,
              count: likeCount,
              onLikeChanged: _onLikeChanged,
              likeBuilder: (bool isLiked, int count) {
                return Icon(
                  isLiked ? Icons.thumb_up : Icons.thumb_down,
                  color: isLiked ? Colors.red : Colors.grey,
                  size: 50,
                );
              },
              countBuilder: (int count, bool isLiked, bool? isAnimating) {
                return Text(
                  '$count',
                  style: TextStyle(
                    color: isLiked ? Colors.red : Colors.grey,
                    fontSize: 20,
                    fontWeight: FontWeight.bold,
                  ),
                );
              },
            ),
            SizedBox(height: 20),
            Text(
              'You ${isLiked ? "liked" : "didn\'t like"} this post. Likes: $likeCount',
              style: TextStyle(fontSize: 18),
            ),
          ],
        ),
      ),
    );
  }
}

解释:

  1. 依赖引入:在pubspec.yaml文件中添加custom_like_button依赖。
  2. 状态管理:在_MyHomePageState类中,使用bool isLikedint likeCount来管理点赞状态和点赞数。
  3. 按钮构建:使用CustomLikeButton小部件,传入当前点赞状态、点赞数以及onLikeChanged回调来处理状态变化。
  4. 自定义图标和计数:通过likeBuildercountBuilder来自定义点赞图标和计数器的显示。
  5. UI布局:使用Column布局来展示点赞按钮和相关信息。

这个示例展示了如何使用custom_like_button插件来创建一个基本的点赞功能,你可以根据需求进一步自定义图标、动画效果等。

回到顶部