David PHAM-VAN

Fix Spacer Widget

@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 - Fix PdfColors.fromHex() 7 - Fix PdfColors.fromHex()
8 - Update Barcode library to 1.9.0 8 - Update Barcode library to 1.9.0
9 - Fix exif orientation crash 9 - Fix exif orientation crash
  10 +- Fix Spacer Widget
10 11
11 ## 1.7.1 12 ## 1.7.1
12 13
@@ -582,22 +582,15 @@ class Expanded extends Flexible { @@ -582,22 +582,15 @@ class Expanded extends Flexible {
582 582
583 /// Spacer creates an adjustable, empty spacer that can be used to tune the 583 /// Spacer creates an adjustable, empty spacer that can be used to tune the
584 /// spacing between widgets in a [Flex] container, like [Row] or [Column]. 584 /// spacing between widgets in a [Flex] container, like [Row] or [Column].
585 -class Spacer extends StatelessWidget {  
586 - Spacer({this.flex = 1}) 585 +class Spacer extends Flexible {
  586 + Spacer({int flex = 1})
587 : assert(flex != null), 587 : assert(flex != null),
588 assert(flex > 0), 588 assert(flex > 0),
589 - super();  
590 -  
591 - /// The flex factor to use in determining how much space to take up.  
592 - final int flex;  
593 -  
594 - @override  
595 - Widget build(Context context) {  
596 - return Expanded(  
597 - flex: flex,  
598 - child: SizedBox.shrink(),  
599 - );  
600 - } 589 + super(
  590 + flex: flex,
  591 + fit: FlexFit.tight,
  592 + child: SizedBox.shrink(),
  593 + );
601 } 594 }
602 595
603 typedef IndexedWidgetBuilder = Widget Function(Context context, int index); 596 typedef IndexedWidgetBuilder = Widget Function(Context context, int index);
@@ -75,6 +75,24 @@ void main() { @@ -75,6 +75,24 @@ void main() {
75 ); 75 );
76 }); 76 });
77 77
  78 + test('Flex Widgets Spacer', () {
  79 + pdf.addPage(
  80 + Page(
  81 + build: (Context context) => Column(
  82 + children: <Widget>[
  83 + Text('Begin'),
  84 + Spacer(), // Defaults to a flex of one.
  85 + Text('Middle'),
  86 + // Gives twice the space between Middle and End than Begin and Middle.
  87 + Spacer(flex: 2),
  88 + // Expanded(flex: 2, child: SizedBox.shrink()),
  89 + Text('End'),
  90 + ],
  91 + ),
  92 + ),
  93 + );
  94 + });
  95 +
78 tearDownAll(() { 96 tearDownAll(() {
79 final File file = File('widgets-flex.pdf'); 97 final File file = File('widgets-flex.pdf');
80 file.writeAsBytesSync(pdf.save()); 98 file.writeAsBytesSync(pdf.save());