Icons

In Flutter Icons class is an identifier for supported material design icons.

Use with the Icon widget to show specific icons.

To use this class, make sure you set uses-material-design: true in your project's pubspec.yaml file in the flutter section. This ensures that the MaterialIcons font is included in your application. This font is used to display the icons. For example:

name: my_awesome_application
flutter:
  uses-material-design: true

Here is an example:

Row(
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: const <Widget>[
    Icon(
      Icons.favorite,
      color: Colors.pink,
      size: 24.0,
      semanticLabel: 'Text to announce in accessibility modes',
    ),
    Icon(
      Icons.audiotrack,
      color: Colors.green,
      size: 30.0,
    ),
    Icon(
      Icons.beach_access,
      color: Colors.blue,
      size: 36.0,
    ),
  ],
)

The above code will produce the following output:

To know what all the icons are available go to Flutter documentation. Below is the link:

https://api.flutter.dev/flutter/material/Icons-class.html

Icon Widget

The Icon widget displays an icon. Icon widget is not interactive. For an interactive icon, consider material's IconButton

Here are some arguments:

Icon(
  icon : Icons.audiotrack,
  color: Colors.green,
  size: 30.0,
)

or,

Icon(
  Icons.audiotrack,
  color: Colors.green,
  size: 30.0,
)

IconButton

A material design icon button. An icon button is a picture printed on a Material widget that reacts to touches by filling with color (ink). If the onPressed callback is null, then the button will be disabled and will not react to touch.

Requires one of its ancestors to be a Material widget.

Widget build(BuildContext context) {
  return Column(
    mainAxisSize: MainAxisSize.min,
    children: <Widget>[
      IconButton(
        icon: Icon(Icons.volume_up),
        tooltip: 'Increase volume by 10',
        onPressed: () {
          setState(() {
            _volume += 10;
          });
        },
      ),
      Text('Volume : $_volume')
    ],
  );
}

Adding a filled background

Icon buttons don't support specifying a background color or other background decoration because typically the icon is just displayed on top of the parent widget's background.

It's easy enough to create an icon button with a filled background using the Ink widget. The Ink widget renders a decoration on the underlying Material along with the splash and highlight InkResponse contributed by descendant widgets.

Widget build(BuildContext context) {
  return Material(
    color: Colors.white,
    child: Center(
      child: Ink(
        decoration: const ShapeDecoration(
          color: Colors.lightBlue,
          shape: CircleBorder(),
        ),
        child: IconButton(
          icon: Icon(Icons.android),
          color: Colors.white,
          onPressed: () {},
        ),
      ),
    ),
  );
}

Here are some argument you can use: