Skip to content

Commit 77c48c9

Browse files
authored
Merge pull request #15 from aagarwal1012/taljacobson-exposse-column-props
Taljacobson exposse column props
2 parents 3e6354f + 19fb224 commit 77c48c9

File tree

4 files changed

+71
-34
lines changed

4 files changed

+71
-34
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ You should then run `flutter packages get` in your terminal so as to get the pac
136136
| skipText | Text | Override Skip Button Text and styles. | Text('SKIP') |
137137
| doneText | Text | Override Done Button Text and styles. | Text('DONE') |
138138
| doneButtonPersist | Bool | Show done Button throughout pages | false |
139+
| columnMainAxisAlignment | MainAxisAlignment | control [MainAxisAlignment] for column | MainAxisAlignment.spaceAround |
139140

140141
For help on editing package code, view the [flutter documentation](https://flutter.io/developing-packages/).
141142

example/lib/main.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ class App extends StatelessWidget {
7979
Navigator.push(
8080
context,
8181
new MaterialPageRoute(
82-
builder: (context) => new HomePage()), //MaterialPageRoute
82+
builder: (context) => new HomePage(),
83+
), //MaterialPageRoute
8384
);
8485
},
8586
showSkipButton:

lib/UI/page.dart

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ class Page extends StatelessWidget {
99
///percent visible of page
1010
final double percentVisible;
1111

12+
/// [MainAxisAligment]
13+
final MainAxisAlignment columnMainAxisAlignment;
14+
1215
//Constructor
1316
Page({
1417
this.pageViewModel,
1518
this.percentVisible = 1.0,
19+
this.columnMainAxisAlignment = MainAxisAlignment.spaceAround,
1620
});
1721

1822
@override
@@ -37,23 +41,29 @@ class Page extends StatelessWidget {
3741
/// when device is Portrait place title, image and body in a column
3842
Widget _buildPortraitPage() {
3943
return new Column(
40-
mainAxisAlignment: MainAxisAlignment.spaceAround,
44+
mainAxisAlignment: columnMainAxisAlignment,
4145
mainAxisSize: MainAxisSize.max,
4246
children: <Widget>[
4347
Flexible(
4448
flex: 1,
4549
child: new _TitlePageTransform(
46-
percentVisible: percentVisible, pageViewModel: pageViewModel),
50+
percentVisible: percentVisible,
51+
pageViewModel: pageViewModel,
52+
),
4753
), //Transform
4854
Expanded(
4955
flex: 4,
5056
child: new _ImagePageTransform(
51-
percentVisible: percentVisible, pageViewModel: pageViewModel),
57+
percentVisible: percentVisible,
58+
pageViewModel: pageViewModel,
59+
),
5260
), //Transform
5361
Flexible(
5462
flex: 2,
5563
child: new _BodyPageTransform(
56-
percentVisible: percentVisible, pageViewModel: pageViewModel),
64+
percentVisible: percentVisible,
65+
pageViewModel: pageViewModel,
66+
),
5767
), //Transform
5868
],
5969
);
@@ -67,20 +77,24 @@ class Page extends StatelessWidget {
6777
children: <Widget>[
6878
Expanded(
6979
child: new _ImagePageTransform(
70-
percentVisible: percentVisible, pageViewModel: pageViewModel),
80+
percentVisible: percentVisible,
81+
pageViewModel: pageViewModel,
82+
),
7183
), //Transform
7284

7385
new Flexible(
7486
child: new Column(
75-
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
87+
mainAxisAlignment: columnMainAxisAlignment,
7688
mainAxisSize: MainAxisSize.max,
7789
children: <Widget>[
7890
new _TitlePageTransform(
79-
percentVisible: percentVisible,
80-
pageViewModel: pageViewModel), //Transform
91+
percentVisible: percentVisible,
92+
pageViewModel: pageViewModel,
93+
), //Transform
8194
new _BodyPageTransform(
82-
percentVisible: percentVisible,
83-
pageViewModel: pageViewModel), //Transform
95+
percentVisible: percentVisible,
96+
pageViewModel: pageViewModel,
97+
), //Transform
8498
],
8599
), // Column
86100
),
@@ -108,11 +122,16 @@ class _BodyPageTransform extends StatelessWidget {
108122
transform:
109123
new Matrix4.translationValues(0.0, 30.0 * (1 - percentVisible), 0.0),
110124
child: new Padding(
111-
padding: const EdgeInsets.only(bottom: 75.0, left: 10.0, right: 10.0),
125+
padding: const EdgeInsets.only(
126+
bottom: 75.0,
127+
left: 10.0,
128+
right: 10.0,
129+
),
112130
child: DefaultTextStyle.merge(
113-
style: pageViewModel.bodyTextStyle,
114-
textAlign: TextAlign.center,
115-
child: pageViewModel.body),
131+
style: pageViewModel.bodyTextStyle,
132+
textAlign: TextAlign.center,
133+
child: pageViewModel.body,
134+
),
116135
), //Padding
117136
);
118137
}
@@ -137,7 +156,10 @@ class _ImagePageTransform extends StatelessWidget {
137156
transform:
138157
new Matrix4.translationValues(0.0, 50.0 * (1 - percentVisible), 0.0),
139158
child: new Padding(
140-
padding: new EdgeInsets.only(top: 20.0, bottom: 40.0),
159+
padding: new EdgeInsets.only(
160+
top: 20.0,
161+
bottom: 40.0,
162+
),
141163
child: new Container(
142164
child: pageViewModel.mainImage, //Loading main
143165
), //Container
@@ -166,7 +188,11 @@ class _TitlePageTransform extends StatelessWidget {
166188
new Matrix4.translationValues(0.0, 30.0 * (1 - percentVisible), 0.0),
167189
child: new Padding(
168190
padding: new EdgeInsets.only(
169-
top: 60.0, bottom: 30.0, left: 10.0, right: 10.0),
191+
top: 60.0,
192+
bottom: 30.0,
193+
left: 10.0,
194+
right: 10.0,
195+
),
170196
child: DefaultTextStyle.merge(
171197
style: pageViewModel.titleTextStyle,
172198
child: pageViewModel.title,

lib/intro_views_flutter.dart

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,28 @@ class IntroViewsFlutter extends StatefulWidget {
5757
/// always Show DoneButton
5858
final bool doneButtonPersist;
5959

60-
IntroViewsFlutter(
61-
this.pages, {
62-
Key key,
63-
this.onTapDoneButton,
64-
this.showSkipButton = true,
65-
this.pageButtonTextStyles,
66-
this.pageButtonTextSize = 18.0,
67-
this.pageButtonFontFamily,
68-
this.onTapSkipButton,
69-
this.pageButtonsColor,
70-
this.doneText = const Text("DONE"),
71-
this.skipText = const Text("SKIP"),
72-
this.doneButtonPersist = false,
73-
}) : super(key: key);
60+
/// [MainAxisAlignment] for [PageViewModel] page column aligment
61+
/// default [MainAxisAligment.spaceAround]
62+
///
63+
/// portrait view wraps around [title] [body] [mainImage]
64+
///
65+
/// landscape view wraps around [title] [body]
66+
final MainAxisAlignment columnMainAxisAlignment;
67+
68+
IntroViewsFlutter(this.pages,
69+
{Key key,
70+
this.onTapDoneButton,
71+
this.showSkipButton = true,
72+
this.pageButtonTextStyles,
73+
this.pageButtonTextSize = 18.0,
74+
this.pageButtonFontFamily,
75+
this.onTapSkipButton,
76+
this.pageButtonsColor,
77+
this.doneText = const Text("DONE"),
78+
this.skipText = const Text("SKIP"),
79+
this.doneButtonPersist = false,
80+
this.columnMainAxisAlignment = MainAxisAlignment.spaceAround})
81+
: super(key: key);
7482

7583
@override
7684
_IntroViewsFlutterState createState() => new _IntroViewsFlutterState();
@@ -182,14 +190,15 @@ class _IntroViewsFlutterState extends State<IntroViewsFlutter>
182190
new Page(
183191
pageViewModel: pages[activePageIndex],
184192
percentVisible: 1.0,
193+
columnMainAxisAlignment: widget.columnMainAxisAlignment,
185194
), //Pages
186195
new PageReveal(
187196
//next page reveal
188197
revealPercent: slidePercent,
189198
child: new Page(
190-
pageViewModel: pages[nextPageIndex],
191-
percentVisible: slidePercent,
192-
),
199+
pageViewModel: pages[nextPageIndex],
200+
percentVisible: slidePercent,
201+
columnMainAxisAlignment: widget.columnMainAxisAlignment),
193202
), //PageReveal
194203

195204
new PagerIndicator(

0 commit comments

Comments
 (0)