Use ScrollView in examples a manual_tests (#7645)

This patch deploys ScrollView in a number of demos and manual tests.
This commit is contained in:
Adam Barth 2017-01-25 21:59:03 -08:00 committed by GitHub
parent 905353b4d1
commit a4eca31777
14 changed files with 167 additions and 165 deletions

View file

@ -589,7 +589,7 @@ class GalleryDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Drawer(
child: new Block(
child: new ScrollView(
children: <Widget>[
new FancyDrawerHeader(),
new DrawerItem(

View file

@ -123,33 +123,35 @@ class CardCollectionState extends State<CardCollection> {
return new Drawer(
child: new IconTheme(
data: const IconThemeData(color: Colors.black),
child: new Block(children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Options'))),
buildDrawerCheckbox("Make card labels editable", _editable, _toggleEditable),
buildDrawerCheckbox("Snap fling scrolls to center", _snapToCenter, _toggleSnapToCenter),
buildDrawerCheckbox("Fixed size cards", _fixedSizeCards, _toggleFixedSizeCards),
buildDrawerCheckbox("Let the sun shine", _sunshine, _toggleSunshine),
buildDrawerCheckbox("Vary font sizes", _varyFontSizes, _toggleVaryFontSizes, enabled: !_editable),
new Divider(),
buildDrawerColorRadioItem("Deep Purple", Colors.deepPurple, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Green", Colors.green, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Amber", Colors.amber, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Teal", Colors.teal, _primaryColor, _selectColor),
new Divider(),
buildDrawerDirectionRadioItem("Dismiss horizontally", DismissDirection.horizontal, _dismissDirection, _changeDismissDirection, icon: Icons.code),
buildDrawerDirectionRadioItem("Dismiss left", DismissDirection.endToStart, _dismissDirection, _changeDismissDirection, icon: Icons.arrow_back),
buildDrawerDirectionRadioItem("Dismiss right", DismissDirection.startToEnd, _dismissDirection, _changeDismissDirection, icon: Icons.arrow_forward),
new Divider(),
buildFontRadioItem("Left-align text", TextAlign.left, _textAlign, _changeTextAlign, icon: Icons.format_align_left, enabled: !_editable),
buildFontRadioItem("Center-align text", TextAlign.center, _textAlign, _changeTextAlign, icon: Icons.format_align_center, enabled: !_editable),
buildFontRadioItem("Right-align text", TextAlign.right, _textAlign, _changeTextAlign, icon: Icons.format_align_right, enabled: !_editable),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.dvr),
onPressed: () { debugDumpApp(); debugDumpRenderTree(); },
child: new Text('Dump App to Console')
),
])
child: new ScrollView(
children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Options'))),
buildDrawerCheckbox("Make card labels editable", _editable, _toggleEditable),
buildDrawerCheckbox("Snap fling scrolls to center", _snapToCenter, _toggleSnapToCenter),
buildDrawerCheckbox("Fixed size cards", _fixedSizeCards, _toggleFixedSizeCards),
buildDrawerCheckbox("Let the sun shine", _sunshine, _toggleSunshine),
buildDrawerCheckbox("Vary font sizes", _varyFontSizes, _toggleVaryFontSizes, enabled: !_editable),
new Divider(),
buildDrawerColorRadioItem("Deep Purple", Colors.deepPurple, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Green", Colors.green, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Amber", Colors.amber, _primaryColor, _selectColor),
buildDrawerColorRadioItem("Teal", Colors.teal, _primaryColor, _selectColor),
new Divider(),
buildDrawerDirectionRadioItem("Dismiss horizontally", DismissDirection.horizontal, _dismissDirection, _changeDismissDirection, icon: Icons.code),
buildDrawerDirectionRadioItem("Dismiss left", DismissDirection.endToStart, _dismissDirection, _changeDismissDirection, icon: Icons.arrow_back),
buildDrawerDirectionRadioItem("Dismiss right", DismissDirection.startToEnd, _dismissDirection, _changeDismissDirection, icon: Icons.arrow_forward),
new Divider(),
buildFontRadioItem("Left-align text", TextAlign.left, _textAlign, _changeTextAlign, icon: Icons.format_align_left, enabled: !_editable),
buildFontRadioItem("Center-align text", TextAlign.center, _textAlign, _changeTextAlign, icon: Icons.format_align_center, enabled: !_editable),
buildFontRadioItem("Right-align text", TextAlign.right, _textAlign, _changeTextAlign, icon: Icons.format_align_right, enabled: !_editable),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.dvr),
onPressed: () { debugDumpApp(); debugDumpRenderTree(); },
child: new Text('Dump App to Console')
),
]
)
)
);
}

View file

@ -84,31 +84,33 @@ class PageableListAppState extends State<PageableListApp> {
Widget _buildDrawer() {
return new Drawer(
child: new Block(children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Options'))),
new DrawerItem(
icon: new Icon(Icons.more_horiz),
selected: scrollDirection == Axis.horizontal,
child: new Text('Horizontal Layout'),
onPressed: switchScrollDirection
),
new DrawerItem(
icon: new Icon(Icons.more_vert),
selected: scrollDirection == Axis.vertical,
child: new Text('Vertical Layout'),
onPressed: switchScrollDirection
),
new DrawerItem(
onPressed: toggleItemsWrap,
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Scrolling wraps around')),
// TODO(abarth): Actually make this checkbox change this value.
new Checkbox(value: itemsWrap, onChanged: null)
]
child: new ScrollView(
children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Options'))),
new DrawerItem(
icon: new Icon(Icons.more_horiz),
selected: scrollDirection == Axis.horizontal,
child: new Text('Horizontal Layout'),
onPressed: switchScrollDirection
),
new DrawerItem(
icon: new Icon(Icons.more_vert),
selected: scrollDirection == Axis.vertical,
child: new Text('Vertical Layout'),
onPressed: switchScrollDirection
),
new DrawerItem(
onPressed: toggleItemsWrap,
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Scrolling wraps around')),
// TODO(abarth): Actually make this checkbox change this value.
new Checkbox(value: itemsWrap, onChanged: null)
]
)
)
)
])
]
)
);
}

View file

@ -41,7 +41,7 @@ class _ChipDemoState extends State<ChipDemo> {
return new Scaffold(
appBar: new AppBar(title: new Text('Chips')),
body: new Block(
body: new ScrollView(
children: chips.map((Widget widget) {
return new Container(
height: 100.0,

View file

@ -88,7 +88,7 @@ class _DrawerDemoState extends State<DrawerDemo> with TickerProviderStateMixin {
title: new Text('Navigation drawer'),
),
drawer: new Drawer(
child: new Block(
child: new ScrollView(
children: <Widget>[
new UserAccountsDrawerHeader(
accountName: new Text('Zach Widget'),

View file

@ -161,7 +161,7 @@ class LeaveBehindDemoState extends State<LeaveBehindDemo> {
)
]
),
body: new Block(
body: new ScrollView(
children: leaveBehindItems.map(buildItem).toList()
)
);

View file

@ -29,41 +29,39 @@ class _SnackBarDemoState extends State<SnackBarDemo> {
int _snackBarIndex = 1;
Widget buildBody(BuildContext context) {
return new Padding(
return new Block(
padding: const EdgeInsets.all(24.0),
child: new Block(
children: <Widget>[
new Text(_text1),
new Text(_text2),
new Center(
child: new RaisedButton(
child: new Text('SHOW A SNACKBAR'),
onPressed: () {
final int thisSnackBarIndex = _snackBarIndex++;
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('This is snackbar #$thisSnackBarIndex.'),
action: new SnackBarAction(
label: 'ACTION',
onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('You pressed snackbar $thisSnackBarIndex\'s action.')
));
}
)
));
}
)
),
new Text(_text3),
]
.map((Widget child) {
return new Container(
margin: const EdgeInsets.symmetric(vertical: 12.0),
child: child
);
})
.toList()
)
children: <Widget>[
new Text(_text1),
new Text(_text2),
new Center(
child: new RaisedButton(
child: new Text('SHOW A SNACKBAR'),
onPressed: () {
final int thisSnackBarIndex = _snackBarIndex++;
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('This is snackbar #$thisSnackBarIndex.'),
action: new SnackBarAction(
label: 'ACTION',
onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('You pressed snackbar $thisSnackBarIndex\'s action.')
));
}
)
));
}
)
),
new Text(_text3),
]
.map((Widget child) {
return new Container(
margin: const EdgeInsets.symmetric(vertical: 12.0),
child: child
);
})
.toList()
);
}

View file

@ -22,7 +22,7 @@ class TooltipDemo extends StatelessWidget {
),
body: new Builder(
builder: (BuildContext context) {
return new Block(
return new ScrollView(
children: <Widget>[
new Text(_introText, style: theme.textTheme.subhead),
new Row(

View file

@ -66,7 +66,7 @@ class TypographyDemo extends StatelessWidget {
return new Scaffold(
appBar: new AppBar(title: new Text('Typography')),
body: new Block(children: styleItems)
body: new ScrollView(children: styleItems)
);
}
}

View file

@ -305,6 +305,6 @@ class GalleryDrawer extends StatelessWidget {
));
}
return new Drawer(child: new Block(children: allDrawerItems));
return new Drawer(child: new ScrollView(children: allDrawerItems));
}
}

View file

@ -121,63 +121,65 @@ class StockHomeState extends State<StockHome> {
Widget _buildDrawer(BuildContext context) {
return new Drawer(
child: new Block(children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Stocks'))),
new DrawerItem(
icon: new Icon(Icons.assessment),
selected: true,
child: new Text('Stock List')
),
new DrawerItem(
icon: new Icon(Icons.account_balance),
onPressed: null,
child: new Text('Account Balance')
),
new DrawerItem(
icon: new Icon(Icons.dvr),
onPressed: () {
try {
debugDumpApp();
debugDumpRenderTree();
debugDumpLayerTree();
debugDumpSemanticsTree();
} catch (e, stack) {
debugPrint('Exception while dumping app:\n$e\n$stack');
}
},
child: new Text('Dump App to Console')
),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.thumb_up),
onPressed: () => _handleStockModeChange(StockMode.optimistic),
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Optimistic')),
new Radio<StockMode>(value: StockMode.optimistic, groupValue: config.configuration.stockMode, onChanged: _handleStockModeChange)
]
)
),
new DrawerItem(
icon: new Icon(Icons.thumb_down),
onPressed: () => _handleStockModeChange(StockMode.pessimistic),
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Pessimistic')),
new Radio<StockMode>(value: StockMode.pessimistic, groupValue: config.configuration.stockMode, onChanged: _handleStockModeChange)
]
)
),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.settings),
onPressed: _handleShowSettings,
child: new Text('Settings')),
new DrawerItem(
icon: new Icon(Icons.help),
onPressed: _handleShowAbout,
child: new Text('About'))
])
child: new ScrollView(
children: <Widget>[
new DrawerHeader(child: new Center(child: new Text('Stocks'))),
new DrawerItem(
icon: new Icon(Icons.assessment),
selected: true,
child: new Text('Stock List')
),
new DrawerItem(
icon: new Icon(Icons.account_balance),
onPressed: null,
child: new Text('Account Balance')
),
new DrawerItem(
icon: new Icon(Icons.dvr),
onPressed: () {
try {
debugDumpApp();
debugDumpRenderTree();
debugDumpLayerTree();
debugDumpSemanticsTree();
} catch (e, stack) {
debugPrint('Exception while dumping app:\n$e\n$stack');
}
},
child: new Text('Dump App to Console')
),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.thumb_up),
onPressed: () => _handleStockModeChange(StockMode.optimistic),
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Optimistic')),
new Radio<StockMode>(value: StockMode.optimistic, groupValue: config.configuration.stockMode, onChanged: _handleStockModeChange)
]
)
),
new DrawerItem(
icon: new Icon(Icons.thumb_down),
onPressed: () => _handleStockModeChange(StockMode.pessimistic),
child: new Row(
children: <Widget>[
new Expanded(child: new Text('Pessimistic')),
new Radio<StockMode>(value: StockMode.pessimistic, groupValue: config.configuration.stockMode, onChanged: _handleStockModeChange)
]
)
),
new Divider(),
new DrawerItem(
icon: new Icon(Icons.settings),
onPressed: _handleShowSettings,
child: new Text('Settings')),
new DrawerItem(
icon: new Icon(Icons.help),
onPressed: _handleShowAbout,
child: new Text('About'))
]
)
);
}

View file

@ -241,8 +241,8 @@ class StockSettingsState extends State<StockSettings> {
return true;
});
return new Block(
padding: const EdgeInsets.symmetric(vertical: 20.0),
children: rows,
padding: const EdgeInsets.symmetric(vertical: 20.0)
);
}

View file

@ -73,22 +73,20 @@ class StockSymbolPage extends StatelessWidget {
appBar: new AppBar(
title: new Text(stock.name)
),
body: new Block(
children: <Widget>[
new Container(
margin: new EdgeInsets.all(20.0),
child: new Card(
child: new _StockSymbolView(
stock: stock,
arrow: new Hero(
tag: stock,
turns: 2,
child: new StockArrow(percentChange: stock.percentChange)
)
body: new SingleChildScrollView(
child: new Container(
margin: new EdgeInsets.all(20.0),
child: new Card(
child: new _StockSymbolView(
stock: stock,
arrow: new Hero(
tag: stock,
turns: 2,
child: new StockArrow(percentChange: stock.percentChange)
)
)
)
]
)
)
);
}

View file

@ -39,7 +39,7 @@ void main() {
children.add(const SizedBox(height: 18.0));
children.add(new Center(child: new CircularProgressIndicator(value: progressMax > 0 ? progress / progressMax : null)));
}
return new Block(children: children);
return new ScrollView(children: children);
},
),
),
@ -114,4 +114,4 @@ class LoaderBinding extends WidgetsFlutterBinding {
}
);
}
}
}