86 lines
2.3 KiB
Dart
86 lines
2.3 KiB
Dart
|
|
import 'package:flutter/material.dart';
|
|
|
|
class ShowPrice extends StatelessWidget {
|
|
final double price;
|
|
final double regularPrice;
|
|
final double largeFontSize;
|
|
final double smallFontSize;
|
|
final String currencySign;
|
|
final Color color;
|
|
final FontWeight fontWeight;
|
|
|
|
ShowPrice(this.price,
|
|
{
|
|
this.regularPrice,
|
|
this.largeFontSize = 20,
|
|
this.smallFontSize = 12,
|
|
this.currencySign,
|
|
this.color = Colors.red,
|
|
this.fontWeight = FontWeight.normal,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
String priceString = price.toStringAsFixed(2);
|
|
var arr = priceString.split('.');
|
|
String num1 = arr[0];
|
|
String num2 = arr[1];
|
|
|
|
return Container(
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
currencySign != null ?
|
|
Container(
|
|
padding: EdgeInsets.only(top: largeFontSize / 10.0),
|
|
child: Text(
|
|
currencySign,
|
|
style: TextStyle(
|
|
fontSize: smallFontSize,
|
|
color: color,
|
|
fontWeight: fontWeight,
|
|
),
|
|
),
|
|
) : SizedBox.shrink(),
|
|
Container(
|
|
child: Text(
|
|
num1,
|
|
style: TextStyle(
|
|
color: color,
|
|
fontSize: largeFontSize,
|
|
fontWeight: fontWeight,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
padding: EdgeInsets.only(top: largeFontSize / 10.0),
|
|
child: Text(
|
|
'.$num2',
|
|
style: TextStyle(
|
|
color: color,
|
|
fontSize: smallFontSize,
|
|
fontWeight: fontWeight,
|
|
),
|
|
),
|
|
),
|
|
regularPrice == null || price.round() >= regularPrice.round() ?
|
|
SizedBox.shrink() :
|
|
Container(
|
|
padding: EdgeInsets.only(top: largeFontSize / 2),
|
|
child: Text(
|
|
regularPrice.toStringAsFixed(0),
|
|
style: TextStyle(
|
|
color: Colors.black38,
|
|
fontSize: smallFontSize,
|
|
decoration: TextDecoration.lineThrough,
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
} |