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.

102 lines
2.4 KiB

4 years ago
import 'package:flutter/material.dart';
class IconText extends StatelessWidget {
4 years ago
final String leftImage;
final String rightImage;
final IconData leftIcon;
final IconData rightIcon;
final String text;
final TextStyle textStyle;
final double iconSize;
final Color iconColor;
4 years ago
final CrossAxisAlignment textAxisAlignment;
4 years ago
final bool isMax;
IconText(this.text,
{this.leftIcon,
this.rightIcon,
this.leftImage,
this.rightImage,
this.isMax = false,
this.iconSize = 16,
4 years ago
this.textAxisAlignment = CrossAxisAlignment.center,
this.iconColor = Colors.black,
this.textStyle});
4 years ago
@override
Widget build(BuildContext context) {
var widgets = <Widget>[];
if (leftIcon != null || (leftImage != null && leftImage != "")) {
if (leftIcon != null) {
widgets.add(
Padding(
padding: EdgeInsets.all(2),
child: Icon(
leftIcon,
size: iconSize,
color: iconColor,
),
),
);
} else if (leftImage != null && leftImage != "") {
widgets.add(Padding(
padding: EdgeInsets.all(2),
child: Image.asset(
leftImage,
width: iconSize,
height: iconSize,
),
));
4 years ago
}
}
widgets.add(isMax ? Expanded(
child: Text(
text,
4 years ago
textAlign: TextAlign.start,
style: textStyle,
),
flex: 1,
) : Text(
text,
textAlign: TextAlign.center,
style: textStyle,
));
4 years ago
if (rightIcon != null || rightImage != null && rightImage != "") {
if (rightIcon != null) {
widgets.add(
Padding(
padding: EdgeInsets.all(2),
child: Icon(
rightIcon,
size: iconSize,
color: iconColor,
),
),
);
} else if (rightImage != null && rightImage != "") {
widgets.add(
Padding(
padding: EdgeInsets.all(2),
child: Image.asset(
rightImage,
width: iconSize,
height: iconSize,
),
),
);
4 years ago
}
}
return Container(
child: Row(
mainAxisAlignment: isMax ? MainAxisAlignment.center : MainAxisAlignment.start,
4 years ago
crossAxisAlignment: textAxisAlignment,
mainAxisSize: MainAxisSize.min,
4 years ago
children: widgets,
),
);
}
}