@@ -12,6 +12,7 @@ import '../utils/edge_insets.dart';
1212import '../utils/theme.dart' ;
1313import '../widgets/screen_size.dart' ;
1414import 'create_control.dart' ;
15+ import 'scrollable_control.dart' ;
1516
1617class PageControl extends StatelessWidget {
1718 final Control ? parent;
@@ -34,6 +35,14 @@ class PageControl extends StatelessWidget {
3435 final crossAlignment = parseCrossAxisAlignment (
3536 control, "horizontalAlignment" , CrossAxisAlignment .start);
3637
38+ ScrollMode scrollMode = ScrollMode .values.firstWhere (
39+ (m) =>
40+ m.name.toLowerCase () ==
41+ control.attrString ("scroll" , "" )! .toLowerCase (),
42+ orElse: () => ScrollMode .none);
43+
44+ debugPrint ("scrollMode: $scrollMode " );
45+
3746 Control ? offstage;
3847 List <Widget > controls = [];
3948 bool firstControl = true ;
@@ -100,6 +109,11 @@ class PageControl extends StatelessWidget {
100109 .toList ()
101110 : [];
102111
112+ var column = Column (
113+ mainAxisAlignment: mainAlignment,
114+ crossAxisAlignment: crossAlignment,
115+ children: controls);
116+
103117 return MaterialApp (
104118 title: title,
105119 theme: theme,
@@ -109,16 +123,18 @@ class PageControl extends StatelessWidget {
109123 body: Stack (children: [
110124 SizedBox .expand (
111125 child: Container (
112- padding: parseEdgeInsets (control, "padding" ) ??
113- const EdgeInsets .all (10 ),
114- decoration: BoxDecoration (
115- color: HexColor .fromString (
116- context, control.attrString ("bgcolor" , "" )! )),
117- child: Column (
118- mainAxisAlignment: mainAlignment,
119- crossAxisAlignment: crossAlignment,
120- children: controls),
121- )),
126+ padding: parseEdgeInsets (control, "padding" ) ??
127+ const EdgeInsets .all (10 ),
128+ decoration: BoxDecoration (
129+ color: HexColor .fromString (
130+ context, control.attrString ("bgcolor" , "" )! )),
131+ child: scrollMode != ScrollMode .none
132+ ? ScrollableControl (
133+ child: column,
134+ scrollDirection: Axis .vertical,
135+ scrollMode: scrollMode,
136+ )
137+ : column)),
122138 ...offstageWidgets,
123139 const ScreenSize ()
124140 ]),
0 commit comments