You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.6 KiB

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:aku_community/base/base_style.dart';
import 'package:aku_community/utils/headers.dart';
class BeeCheckBox extends StatefulWidget {
final Function(bool)? onChange;
final bool? isRound;
final double? size;
BeeCheckBox({Key? key, this.onChange, this.isRound, this.size})
: super(key: key);
BeeCheckBox.round({Key? key, this.onChange, this.size})
: this.isRound = true,
super(key: key);
@override
_BeeCheckBoxState createState() => _BeeCheckBoxState();
}
class _BeeCheckBoxState extends State<BeeCheckBox> {
double get boxSize => widget.size ?? 28.w;
bool _isSelect = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
_isSelect = !_isSelect;
setState(() {});
widget.onChange!(_isSelect);
},
child: AnimatedContainer(
duration: Duration(milliseconds: 300),
decoration: BoxDecoration(
border: Border.all(
width: 1.w, color: _isSelect ? kPrimaryColor : kDarkSubColor),
color: _isSelect ? kPrimaryColor : Colors.transparent,
borderRadius:
BorderRadius.circular(widget.isRound! ? boxSize / 2 : 0)),
curve: Curves.easeInOutCubic,
width: boxSize,
height: boxSize,
child: _isSelect
? Icon(
CupertinoIcons.check_mark,
size: 25.w,
color: Colors.white,
)
: SizedBox(),
),
);
}
}