Table of Contents
In this guide we will learn how to implement button functionality using material button widgets.
In this guide, we will cover all the material button widgets listed on the official flutter docs - Material Button Documentation
Flutter Material Button Documentation |
Let us start with the simplest way to implement buttons in flutter
Also refer official class documentation with this guide to deeply understand the concept.
A flat button is a text label displayed on a zero elevation Material widget.
FlatButton Class Constructor
FlatButton({Key key, @required VoidCallback onPressed, ValueChanged<bool> onHighlightChanged, ButtonTextTheme textTheme, Color textColor, Color disabledTextColor, Color color, Color disabledColor, Color focusColor, Color hoverColor, Color highlightColor, Color splashColor, Brightness colorBrightness, EdgeInsetsGeometry padding, ShapeBorder shape, Clip clipBehavior, FocusNode focusNode, bool autofocus: false, MaterialTapTargetSize materialTapTargetSize, @required Widget child })
Required Parameters
FlatButton Implementation |
lets add some more parameters or properties : refer official class documentation for property list
FlatButton Color Parameters |
Set onPressed VoidCallback to ‘null’
FlatButton Disabled |
FlatButton.icon Constructor
FlatButton.icon Constructor |
Also refer official class documentation with this guide to deeply understand the concept.
Button with elevation
RaisedButton Class Constructor
RaisedButton({Key key, @required VoidCallback onPressed, ValueChanged<bool> onHighlightChanged, ButtonTextTheme textTheme, Color textColor, Color disabledTextColor, Color color, Color disabledColor, Color focusColor, Color hoverColor, Color highlightColor, Color splashColor, Brightness colorBrightness, double elevation, double focusElevation, double hoverElevation, double highlightElevation, double disabledElevation, EdgeInsetsGeometry padding, ShapeBorder shape, Clip clipBehavior, FocusNode focusNode, bool autofocus: false, MaterialTapTargetSize materialTapTargetSize, Duration animationDuration, Widget child })
Required Parameters
RaisedButton Implementation |
lets add some more parameters or properties : refer official class documentation for property list
RaisedButton Color Parameters |
RaisedButton.icon Constructor
RaisedButton.icon Constructor |
Also refer official class documentation with this guide to deeply understand the concept.
IconButton Class Constructor
IconButton({Key key, double iconSize: 24.0, EdgeInsetsGeometry padding: const EdgeInsets.all(8.0), AlignmentGeometry alignment: Alignment.center, @required Widget icon, Color color, Color focusColor, Color hoverColor, Color highlightColor, Color splashColor, Color disabledColor, @required VoidCallback onPressed, FocusNode focusNode, bool autofocus: false, String tooltip })
Required Parameters
IconButton Class Implementation |
lets add some more parameters or properties : refer official class documentation for property list
IconButton Color Parameters |
Also refer official class documentation with this guide to deeply understand the concept.
FloatingActionButton Class Constructor
FloatingActionButton({Key key, Widget child, String tooltip, Color foregroundColor, Color backgroundColor, Color focusColor, Color hoverColor, Color splashColor, Object heroTag: const \_DefaultHeroTag(), double elevation, double focusElevation, double hoverElevation, double highlightElevation, double disabledElevation, @required VoidCallback onPressed, bool mini: false, ShapeBorder shape, Clip clipBehavior: Clip.none, FocusNode focusNode, bool autofocus: false, MaterialTapTargetSize materialTapTargetSize, bool isExtended: false })
Required Parameters
Scaffold has a floatingActionButton Parameter - Scaffold Constructor Documentation
FloatingActionButton Implementation |
lets add some more parameters or properties : refer official class documentation for property list
FloatingActionButton Tooltip |
FloatingActionButton.extended constructor
FloatingActionButton.extended({Key key, String tooltip, Color foregroundColor, Color backgroundColor, Color focusColor, Color hoverColor, Object heroTag: const \_DefaultHeroTag(), double elevation, double focusElevation, double hoverElevation, Color splashColor, double highlightElevation, double disabledElevation, @required VoidCallback onPressed, ShapeBorder shape, bool isExtended: true, MaterialTapTargetSize materialTapTargetSize, Clip clipBehavior: Clip.none, FocusNode focusNode, bool autofocus: false, Widget icon, @required Widget label })
Required Parameters
FloatingActionButton.extended Constructor |
Also refer official class documentation with this guide to deeply understand the concept.
ButtonBar Class Constructor
ButtonBar({Key key, MainAxisAlignment alignment: MainAxisAlignment.end, MainAxisSize mainAxisSize: MainAxisSize.max, List<Widget> children: const [] })
children [] - List of the buttons to be arranged horizontally.
lets add some more parameters or properties : refer official class documentation for property list
ButtonBar Implementation |
Also refer official class documentation with this guide to deeply understand the concept.
A dropdown button lets the user select from a number of items. Dropdown button allows us build simple input user interface to select list items. Common examples - select countries, currencies, states etc in our flutter app
DropdownButton Class Constructor
DropdownButton({Key key, @required List<DropdownMenuItem<T>> items, T value, Widget hint, Widget disabledHint, @required ValueChanged<T> onChanged, int elevation: 8, TextStyle style, Widget underline, Widget icon, Color iconDisabledColor, Color iconEnabledColor, double iconSize: 24.0, bool isDense: false, bool isExpanded: false })
Required Parameters
Implementation
3 main properties required for DropdownButton class implementation
2 main properties required to implement DropdownMenuItem class
DropdownButton Class Implementation |
lets add some more parameters or properties : refer official class documentation for property list
icon - The widget to use for the drop-down button’s icon
DropdownButton Class Properties |
Also refer official class documentation with this guide to deeply understand the concept.
When this button is pressed, it displays a menu (pop-up menu).
PopupMenuButton Class Constructor
PopupMenuButton({Key key, @required PopupMenuItemBuilder<T> itemBuilder, T initialValue, PopupMenuItemSelected<T> onSelected, PopupMenuCanceled onCanceled, String tooltip, double elevation, EdgeInsetsGeometry padding: const EdgeInsets.all(8.0), Widget child, Icon icon, Offset offset: Offset.zero, bool enabled: true, ShapeBorder shape, Color color })
Required Parameters
Implementation
3 main properties required for PopupMenuButton class implementation
2 main properties required to implement PopupMenuItem class
PopupMenuButton Class Implementation |
lets add some more parameters or properties : refer official class documentation for property list
PopupMenuButton Class Properties |
PopupMenuButton sample implementation - add settings popup menu button
Settings PopupMenuButton |
Bonus Tip : Also refer the following classes to improve your PopupMenu UI
There are two more classes using which we can implement button functionality
We will cover this in Flutter Gestures Guide.