• Flutter_02_封装一个简单的收藏按钮


    import 'package:flutter/material.dart';
    import 'package:flutter_go/utils/useDebounce.dart';
    
    /// 自定义收藏组件
    /// isFavorite  默认是否收藏
    /// favoriteNum 默认收藏次数
    class FavoriteWidget extends StatefulWidget {
      final bool isFavorite;
      final int favoriteNum;
    
      FavoriteWidget({
        Key? key,
        required this.isFavorite,
        required this.favoriteNum,
      }) : super(key: key);
    
      @override
      _FavoriteState createState() => _FavoriteState();
    }
    
    class _FavoriteState extends State<FavoriteWidget> {
      late bool _isFavorite;
      late int _favoriteNum;
    
      @override
      void initState() {
        super.initState();
        _isFavorite = widget.isFavorite;
        _favoriteNum = widget.favoriteNum;
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(
          child: InkWell(
            onTap: useDebounce(_favorite, delay: Duration(milliseconds: 300)),
            splashColor: Colors.transparent,
            highlightColor: Colors.transparent,
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Icon(
                  _isFavorite ? Icons.favorite : Icons.favorite_border,
                  color: _isFavorite ? Colors.deepOrange : null,
                  size: 18,
                ),
                Text(
                  "$_favoriteNum",
                  style: TextStyle(fontSize: 16),
                ),
              ],
            ),
          ),
        );
      }
    
      /// 收藏&取消收藏
      void _favorite() {
        setState(() {
          _isFavorite ? _favoriteNum -= 1 : _favoriteNum += 1;
          _isFavorite = !_isFavorite;
        });
      }
    }
    
    
  • 相关阅读:
    利用docker搭建测试环境--安装
    fiddler获取手机请求
    python多线程
    linux下安装python的第三方module
    shell编程sed笔记
    shell 函数
    mysql information_schema 数据库简介:
    shell常用的判断条件
    gulp:gulp-sass基础教程
    (六):关于全局config配置
  • 原文地址:https://www.cnblogs.com/carp-li/p/15106413.html
Copyright © 2020-2023  润新知