part of ansu_ui; class ASCheckBox extends StatefulWidget { final bool value; final bool checkStyle; ASCheckBox({Key key, this.value = false}) : checkStyle = false, super(key: key); ASCheckBox.checkStyle({Key key, this.value = false}) : checkStyle = true, super(key: key); @override _ASCheckBoxState createState() => _ASCheckBoxState(); } class _ASCheckBoxState extends State { _renderDefault() { return Container( height: 17.w, width: 17.w, alignment: Alignment.center, decoration: BoxDecoration( border: Border.all( color: Color(0xFFD5D5D5), width: 1.w, ), borderRadius: BorderRadius.circular(17.w), ), child: AnimatedContainer( duration: Duration(milliseconds: 300), curve: Curves.fastOutSlowIn, height: widget.value ? 13.w : 5.w, width: widget.value ? 13.w : 5.w, decoration: BoxDecoration( color: Color(0xFFF69A2D).withOpacity(widget.value ? 1 : 0), borderRadius: BorderRadius.circular(13.w), ), ), ); } _renderCheck() { return AnimatedContainer( duration: Duration(milliseconds: 300), curve: Curves.fastOutSlowIn, height: 27.w, width: 27.w, alignment: Alignment.center, decoration: BoxDecoration( border: Border.all( color: Color(0xFFD5D5D5), width: widget.value ? 0 : 1.w, ), borderRadius: BorderRadius.circular(27.w), color: Color(0xFFFFBD32).withOpacity(widget.value ? 1 : 0), ), child: AnimatedOpacity( duration: Duration(milliseconds: 300), curve: Curves.fastOutSlowIn, opacity: widget.value ? 1 : 0, child: Icon( Icons.check, size: 18.w, ), ), ); } @override Widget build(BuildContext context) { return widget.checkStyle ? _renderCheck() : _renderDefault(); } }