invoice/lib/ui/app/two_value_header.dart

105 lines
2.6 KiB
Dart

import 'package:flutter/material.dart';
class TwoValueHeader extends StatelessWidget {
const TwoValueHeader({
this.backgroundColor,
this.label1,
this.label2,
this.value1,
this.value2,
});
final MaterialColor backgroundColor;
final String label1;
final String label2;
final String value1;
final String value2;
@override
Widget build(BuildContext context) {
Widget _value1() {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(label1,
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w300,
)),
SizedBox(
height: 6.0,
),
Text(
value1 ?? '',
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.bold,
),
)
],
);
}
Widget _value2() {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(label2,
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w300,
)),
SizedBox(
height: 6.0,
),
Text(
value2 ?? '',
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.bold,
),
)
],
);
}
return Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topRight,
end: Alignment.bottomLeft,
stops: [0.1, 0.3, 0.5, 0.9],
colors: [
(backgroundColor ?? Colors.grey)[300],
(backgroundColor ?? Colors.grey)[400],
(backgroundColor ?? Colors.grey)[500],
(backgroundColor ?? Colors.grey)[600],
],
),
),
child: Padding(
padding: EdgeInsets.all(8.0),
child: Card(
elevation: 2.0,
child: Padding(
padding: EdgeInsets.all(16.0),
child: Flex(
direction: value1.length > 12 || value2.length > 12
? Axis.vertical
: Axis.horizontal,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
_value1(),
_value2(),
],
)
//child: _headerRow(),
),
),
),
);
}
}