@@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart';
22import 'package:flutter/widgets.dart' ;
33
44class ResponsiveRowColumn extends StatelessWidget {
5- final List <Widget > children;
5+ final List <ResponsiveRowColumnItem > children;
66 final isRow;
77 final isColumn;
88 final MainAxisAlignment rowMainAxisAlignment;
@@ -71,7 +71,7 @@ class ResponsiveRowColumn extends StatelessWidget {
7171 verticalDirection: rowVerticalDirection,
7272 textBaseline: rowTextBaseline,
7373 children: [
74- ...buildChildren (children, rowSpacing),
74+ ...buildChildren (children, rowColumn, rowSpacing),
7575 ],
7676 ),
7777 )
@@ -85,31 +85,48 @@ class ResponsiveRowColumn extends StatelessWidget {
8585 verticalDirection: columnVerticalDirection,
8686 textBaseline: columnTextBaseline,
8787 children: [
88- ...buildChildren (children, columnSpacing),
88+ ...buildChildren (children, rowColumn, columnSpacing),
8989 ],
9090 ),
9191 );
9292 }
9393
94- List <Widget > buildChildren (List <Widget > children, double spacing) {
95- List <Widget > childrenList = [];
94+ List <ResponsiveRowColumnItem > buildChildren (
95+ List <ResponsiveRowColumnItem > children, bool rowColumn, double spacing) {
96+ List <ResponsiveRowColumnItem > childrenHolder = children;
97+ childrenHolder.sort ((a, b) {
98+ if (rowColumn) {
99+ return a.rowOrder.compareTo (b.rowOrder);
100+ } else {
101+ return a.columnOrder.compareTo (b.columnOrder);
102+ }
103+ });
104+ List <Widget > widgetList = childrenHolder;
96105 for (int i = 0 ; i < children.length; i++ ) {
97- childrenList .add (children[i]);
106+ widgetList .add (children[i]);
98107 if (spacing != null && i != children.length - 1 )
99- childrenList .add (Padding (padding: EdgeInsets .only (bottom: spacing)));
108+ widgetList .add (Padding (padding: EdgeInsets .only (bottom: spacing)));
100109 }
101- return childrenList ;
110+ return widgetList ;
102111 }
103112}
104113
105- class ResponsiveFlexible extends StatelessWidget {
114+ class ResponsiveRowColumnItem extends StatelessWidget {
115+ final Widget child;
116+ final int rowOrder;
117+ final int columnOrder;
106118 final bool isFlexible;
107119 final int flex;
108120 final FlexFit flexFit;
109- final Widget child;
110121
111- const ResponsiveFlexible (
112- {Key key, this .isFlexible = false , this .flex, this .flexFit, this .child})
122+ const ResponsiveRowColumnItem (
123+ {Key key,
124+ @required this .child,
125+ this .rowOrder,
126+ this .columnOrder,
127+ this .isFlexible = false ,
128+ this .flex,
129+ this .flexFit})
113130 : super (key: key);
114131
115132 @override
0 commit comments