mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Add active mode
This commit is contained in:
		@@ -10,41 +10,47 @@ class IconButtonWithBadge extends StatelessWidget {
 | 
			
		||||
  final Widget icon;
 | 
			
		||||
  final void Function() onPressed;
 | 
			
		||||
  final int number;
 | 
			
		||||
  final bool active;
 | 
			
		||||
 | 
			
		||||
  const IconButtonWithBadge({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.icon,
 | 
			
		||||
    @required this.onPressed,
 | 
			
		||||
    this.number = 0,
 | 
			
		||||
    this.active = false,
 | 
			
		||||
  })  : assert(icon != null),
 | 
			
		||||
        assert(number != null),
 | 
			
		||||
        assert(active != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Stack(
 | 
			
		||||
      alignment: AlignmentDirectional.center,
 | 
			
		||||
      children: <Widget>[
 | 
			
		||||
        IconButton(icon: icon, onPressed: onPressed),
 | 
			
		||||
        number != 0
 | 
			
		||||
            ? Positioned(
 | 
			
		||||
                right: 6,
 | 
			
		||||
                top: 6,
 | 
			
		||||
                child: Container(
 | 
			
		||||
                  padding: EdgeInsets.all(2),
 | 
			
		||||
                  decoration: BoxDecoration(
 | 
			
		||||
                    color: Colors.red,
 | 
			
		||||
                    borderRadius: BorderRadius.circular(6),
 | 
			
		||||
                  ),
 | 
			
		||||
                  constraints: BoxConstraints(minWidth: 14, minHeight: 14),
 | 
			
		||||
                  child: Text(
 | 
			
		||||
                    "$number",
 | 
			
		||||
                    style: TextStyle(color: Colors.white, fontSize: 12),
 | 
			
		||||
                    textAlign: TextAlign.center,
 | 
			
		||||
                  ),
 | 
			
		||||
                ))
 | 
			
		||||
            : Container()
 | 
			
		||||
      ],
 | 
			
		||||
    return Container(
 | 
			
		||||
      color: active ? Color(0x55000000) : null,
 | 
			
		||||
      child: Stack(
 | 
			
		||||
        alignment: AlignmentDirectional.center,
 | 
			
		||||
        children: <Widget>[
 | 
			
		||||
          IconButton(icon: icon, onPressed: onPressed),
 | 
			
		||||
          number != 0
 | 
			
		||||
              ? Positioned(
 | 
			
		||||
                  right: 6,
 | 
			
		||||
                  top: 6,
 | 
			
		||||
                  child: Container(
 | 
			
		||||
                    padding: EdgeInsets.all(2),
 | 
			
		||||
                    decoration: BoxDecoration(
 | 
			
		||||
                      color: Colors.red,
 | 
			
		||||
                      borderRadius: BorderRadius.circular(6),
 | 
			
		||||
                    ),
 | 
			
		||||
                    constraints: BoxConstraints(minWidth: 14, minHeight: 14),
 | 
			
		||||
                    child: Text(
 | 
			
		||||
                      "$number",
 | 
			
		||||
                      style: TextStyle(color: Colors.white, fontSize: 12),
 | 
			
		||||
                      textAlign: TextAlign.center,
 | 
			
		||||
                    ),
 | 
			
		||||
                  ))
 | 
			
		||||
              : Container()
 | 
			
		||||
        ],
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user