| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'package:flutter/widgets.dart'; |
| |
| const String _text1 = |
| "Snackbars provide lightweight feedback about an operation by " |
| "showing a brief message at the bottom of the screen. Snackbars " |
| "can contain an action."; |
| |
| const String _text2 = |
| "Snackbars should contain a single line of text directly related " |
| "to the operation performed. They cannot contain icons."; |
| |
| const String _text3 = |
| "By default snackbars automatically disappear after a few seconds "; |
| |
| class SnackBarDemo extends StatelessWidget { |
| SnackBarDemo({ Key key }) : super(key: key); |
| |
| Widget buildBody(BuildContext context) { |
| return new Padding( |
| padding: const EdgeInsets.all(24.0), |
| child: new Column( |
| children: <Widget>[ |
| new Text(_text1), |
| new Text(_text2), |
| new RaisedButton( |
| child: new Text('Show a SnackBar'), |
| onPressed: () { |
| Scaffold.of(context).showSnackBar(new SnackBar( |
| content: new Text('This is a SnackBar'), |
| action: new SnackBarAction( |
| label: 'ACTION', |
| onPressed: () { |
| Scaffold.of(context).showSnackBar(new SnackBar( |
| content: new Text("You pressed the SnackBar's Action") |
| )); |
| } |
| ) |
| )); |
| } |
| ), |
| new Text(_text3), |
| ] |
| .map((Widget child) { |
| return new Container( |
| margin: const EdgeInsets.symmetric(vertical: 12.0), |
| child: child |
| ); |
| }) |
| .toList() |
| ) |
| ); |
| } |
| |
| Widget build(BuildContext context) { |
| return new Scaffold( |
| appBar: new AppBar( |
| title: new Text('SnackBar') |
| ), |
| body: new Builder( |
| // Create an inner BuildContext so that the snackBar onPressed methods |
| // can refer to the Scaffold with Scaffold.of(). |
| builder: buildBody |
| ) |
| ); |
| } |
| } |