Commit 08bb332c authored by Hans Muller's avatar Hans Muller

Merge pull request #3081 from HansMuller/gallery_tweaks

Gallery Tweaks
parent 653566dd
...@@ -16,11 +16,8 @@ class ModalBottomSheetDemo extends StatelessWidget { ...@@ -16,11 +16,8 @@ class ModalBottomSheetDemo extends StatelessWidget {
return new Scaffold( return new Scaffold(
appBar: new AppBar(title: new Text("Modal Bottom Sheet")), appBar: new AppBar(title: new Text("Modal Bottom Sheet")),
body: new Center( body: new Center(
child: new Container(
width: 200.0,
height: 200.0,
child: new RaisedButton( child: new RaisedButton(
child: new Text('Show the modal bottom sheet', style: textStyle), child: new Text('SHOW BOTTOM SHEET'),
onPressed: () { onPressed: () {
showModalBottomSheet/*<Null>*/(context: context, builder: (BuildContext context) { showModalBottomSheet/*<Null>*/(context: context, builder: (BuildContext context) {
return new Container( return new Container(
...@@ -33,7 +30,6 @@ class ModalBottomSheetDemo extends StatelessWidget { ...@@ -33,7 +30,6 @@ class ModalBottomSheetDemo extends StatelessWidget {
} }
) )
) )
)
); );
} }
} }
...@@ -4,7 +4,13 @@ ...@@ -4,7 +4,13 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class PersistentBottomSheetDemo extends StatelessWidget { class PersistentBottomSheetDemo extends StatefulWidget {
@override
_PersistentBottomSheetDemoState createState() => new _PersistentBottomSheetDemoState();
}
class _PersistentBottomSheetDemoState extends State<PersistentBottomSheetDemo> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
final TextStyle textStyle = new TextStyle( final TextStyle textStyle = new TextStyle(
color: Colors.indigo[400], color: Colors.indigo[400],
...@@ -12,8 +18,20 @@ class PersistentBottomSheetDemo extends StatelessWidget { ...@@ -12,8 +18,20 @@ class PersistentBottomSheetDemo extends StatelessWidget {
textAlign: TextAlign.center textAlign: TextAlign.center
); );
void showBottomSheet(BuildContext context) { VoidCallback _showBottomSheetCallback;
Scaffold.of(context).showBottomSheet((_) {
@override
void initState() {
super.initState();
_showBottomSheetCallback = showBottomSheet;
}
void showBottomSheet() {
setState(() { // disable the button
_showBottomSheetCallback = null;
});
_scaffoldKey.currentState.showBottomSheet/*<Null>*/((BuildContext context) {
return new Container( return new Container(
decoration: new BoxDecoration( decoration: new BoxDecoration(
border: new Border(top: new BorderSide(color: Colors.black26)) border: new Border(top: new BorderSide(color: Colors.black26))
...@@ -23,31 +41,29 @@ class PersistentBottomSheetDemo extends StatelessWidget { ...@@ -23,31 +41,29 @@ class PersistentBottomSheetDemo extends StatelessWidget {
child: new Text("This is a Material persistent bottom sheet. Drag downwards to dismiss it.", style: textStyle) child: new Text("This is a Material persistent bottom sheet. Drag downwards to dismiss it.", style: textStyle)
) )
); );
})
.closed.then((_) {
setState(() { // re-enable the button
_showBottomSheetCallback = showBottomSheet;
});
}); });
} }
@override @override
Widget build(BuildContext notUsed) { // Can't find the Scaffold from this context. Widget build(BuildContext context) {
return new Scaffold( return new Scaffold(
key: _scaffoldKey,
appBar: new AppBar(title: new Text("Persistent Bottom Sheet")), appBar: new AppBar(title: new Text("Persistent Bottom Sheet")),
floatingActionButton: new FloatingActionButton( floatingActionButton: new FloatingActionButton(
child: new Icon(icon: Icons.add), child: new Icon(icon: Icons.add),
backgroundColor: Colors.redAccent[200] backgroundColor: Colors.redAccent[200]
), ),
body: new Builder( body: new Center(
builder: (BuildContext context) {
return new Center(
child: new Container(
width: 200.0,
height: 200.0,
child: new RaisedButton( child: new RaisedButton(
onPressed: () { showBottomSheet(context); }, onPressed: _showBottomSheetCallback,
child: new Text('Show the persistent bottom sheet', style: textStyle) child: new Text('SHOW BOTTOM SHEET')
) )
) )
); );
} }
)
);
}
} }
...@@ -17,9 +17,16 @@ const String _text2 = ...@@ -17,9 +17,16 @@ const String _text2 =
const String _text3 = const String _text3 =
"By default snackbars automatically disappear after a few seconds "; "By default snackbars automatically disappear after a few seconds ";
class SnackBarDemo extends StatelessWidget { class SnackBarDemo extends StatefulWidget {
SnackBarDemo({ Key key }) : super(key: key); SnackBarDemo({ Key key }) : super(key: key);
@override
_SnackBarDemoState createState() => new _SnackBarDemoState();
}
class _SnackBarDemoState extends State<SnackBarDemo> {
int _snackBarIndex = 1;
Widget buildBody(BuildContext context) { Widget buildBody(BuildContext context) {
return new Padding( return new Padding(
padding: const EdgeInsets.all(24.0), padding: const EdgeInsets.all(24.0),
...@@ -27,21 +34,24 @@ class SnackBarDemo extends StatelessWidget { ...@@ -27,21 +34,24 @@ class SnackBarDemo extends StatelessWidget {
children: <Widget>[ children: <Widget>[
new Text(_text1), new Text(_text1),
new Text(_text2), new Text(_text2),
new RaisedButton( new Center(
child: new Text('Show a SnackBar'), child: new RaisedButton(
child: new Text('SHOW A SNACKBAR'),
onPressed: () { onPressed: () {
final int thisSnackBarIndex = _snackBarIndex++;
Scaffold.of(context).showSnackBar(new SnackBar( Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('This is a SnackBar'), content: new Text('This is SnackBar #$thisSnackBarIndex'),
action: new SnackBarAction( action: new SnackBarAction(
label: 'ACTION', label: 'ACTION',
onPressed: () { onPressed: () {
Scaffold.of(context).showSnackBar(new SnackBar( Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text("You pressed the SnackBar's Action") content: new Text("You pressed SnackBar $thisSnackBarIndex's Action")
)); ));
} }
) )
)); ));
} }
)
), ),
new Text(_text3), new Text(_text3),
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment