Flutter widget index

This is an alphabetical list of nearly every widget that is bundled with Flutter. You can also browse widgets by category.

You might also want to check out our Widget of the Week video series on the Flutter YouTube channel. Each short episode features a different Flutter widget. For more video series, see our videos page.

Widget of the Week playlist

AbsorbPointer

A widget that absorbs pointers during hit testing. When absorbing is true, this widget prevents its subtree from receiving pointer events by terminating hit testing...

AlertDialog

Alerts are urgent interruptions requiring acknowledgement that inform the user about a situation. The AlertDialog widget implements this component.

Align

A widget that aligns its child within itself and optionally sizes itself based on the child's size.

AnimatedAlign

Animated version of Align which automatically transitions the child's position over a given duration whenever the given alignment changes.

AnimatedBuilder

A general-purpose widget for building animations. AnimatedBuilder is useful for more complex widgets that wish to include animation as part of a larger build function....

AnimatedContainer

A container that gradually changes its values over a period of time.

AnimatedCrossFade

A widget that cross-fades between two given children and animates itself between their sizes.

AnimatedDefaultTextStyle

Animated version of DefaultTextStyle which automatically transitions the default text style (the text style to apply to descendant Text widgets without explicit style) over a...

AnimatedListState

The state for a scrolling container that animates items when they are inserted or removed.

AnimatedModalBarrier

A widget that prevents the user from interacting with widgets behind itself.

AnimatedOpacity

Animated version of Opacity which automatically transitions the child's opacity over a given duration whenever the given opacity changes.

AnimatedPhysicalModel

Animated version of PhysicalModel.

AnimatedPositioned

Animated version of Positioned which automatically transitions the child's position over a given duration whenever the given position changes.

AnimatedSize

Animated widget that automatically transitions its size over a given duration whenever the given child's size changes.

AnimatedWidget

A widget that rebuilds when the given Listenable changes value.

AnimatedWidgetBaseState

A base class for widgets with implicit animations.

Appbar

A Material Design app bar. An app bar consists of a toolbar and potentially other widgets, such as a TabBar and a FlexibleSpaceBar.

AspectRatio

A widget that attempts to size the child to a specific aspect ratio.

AssetBundle

Asset bundles contain resources, such as images and strings, that can be used by an application. Access to these resources is asynchronous so that they...

Autocomplete

A widget for helping the user make a selection by entering some text and choosing from among a list of options.

BackdropFilter

A widget that applies a filter to the existing painted content and then paints a child. This effect is relatively expensive, especially if the filter...

Abc
Baseline

A widget that positions its child according to the child's baseline.

BottomNavigationBar

Bottom navigation bars make it easy to explore and switch between top-level views in a single tap. The BottomNavigationBar widget implements this component.

BottomSheet

Bottom sheets slide up from the bottom of the screen to reveal more content. You can call showBottomSheet() to implement a persistent bottom sheet or...

Card

A Material Design card. A card has slightly rounded corners and a shadow.

Center

A widget that centers its child within itself.

Checkbox

Checkboxes allow the user to select multiple options from a set. The Checkbox widget implements this component.

Chip

A Material Design chip. Chips represent complex entities in small blocks, such as a contact.

CircularProgressIndicator

A material design circular progress indicator, which spins to indicate that the application is busy.

ClipOval

A widget that clips its child using an oval.

ClipPath

A widget that clips its child using a path.

ClipRect

A widget that clips its child using a rectangle.

Column

Layout a list of child widgets in the vertical direction.

ConstrainedBox

A widget that imposes additional constraints on its child.

Container

A convenience widget that combines common painting, positioning, and sizing widgets.

CupertinoActionSheet

An iOS-style modal bottom action sheet to choose an option among many.

CupertinoActivityIndicator

An iOS-style activity indicator. Displays a circular 'spinner'.

CupertinoAlertDialog

An iOS-style alert dialog.

CupertinoButton

An iOS-style button.

CupertinoContextMenu

An iOS-style full-screen modal route that opens when the child is long-pressed. Used to display relevant actions for your content.

CupertinoDatePicker

An iOS-style date or date and time picker.

CupertinoDialogAction

A button typically used in a CupertinoAlertDialog.

CupertinoFullscreenDialogTransition

An iOS-style transition used for summoning fullscreen dialogs.

CupertinoNavigationBar

An iOS-style top navigation bar. Typically used with CupertinoPageScaffold.

CupertinoPageScaffold

Basic iOS style page layout structure. Positions a navigation bar and content on a background.

CupertinoPageTransition

Provides an iOS-style page transition animation.

CupertinoPicker

An iOS-style picker control. Used to select an item in a short list.

CupertinoPopupSurface

Rounded rectangle surface that looks like an iOS popup surface, such as an alert dialog or action sheet.

CupertinoScrollbar

An iOS-style scrollbar that indicates which portion of a scrollable widget is currently visible.

CupertinoSearchTextField

An iOS-style search field.

CupertinoSegmentedControl

An iOS-style segmented control. Used to select mutually exclusive options in a horizontal list.

CupertinoSlider

Used to select from a range of values.

CupertinoSlidingSegmentedControl

An iOS-13-style segmented control. Used to select mutually exclusive options in a horizontal list.

CupertinoSliverNavigationBar

An iOS-styled navigation bar with iOS-11-style large titles using slivers.

CupertinoSwitch

An iOS-style switch. Used to toggle the on/off state of a single setting.

CupertinoTabBar

An iOS-style bottom tab bar. Typically used with CupertinoTabScaffold.

CupertinoTabScaffold

Tabbed iOS app structure. Positions a tab bar on top of tabs of content.

CupertinoTabView

Root content of a tab that supports parallel navigation between tabs. Typically used with CupertinoTabScaffold.

CupertinoTextField

An iOS-style text field.

CupertinoTimerPicker

An iOS-style countdown timer picker.

CustomMultiChildLayout

A widget that uses a delegate to size and position multiple children.

CustomPaint

A widget that provides a canvas on which to draw during the paint phase.

CustomScrollView

A ScrollView that creates custom scroll effects using slivers.

CustomSingleChildLayout

A widget that defers the layout of its single child to a delegate.

DataTable

Data tables display sets of raw data. They usually appear in desktop enterprise products. The DataTable widget implements this component.

Date & Time Pickers

Date pickers use a dialog window to select a single date on mobile. Time pickers use a dialog to select a single time (in the...

DecoratedBox

A widget that paints a Decoration either before or after its child paints.

DecoratedBoxTransition

Animated version of a DecoratedBox that animates the different properties of its Decoration.

DefaultTextStyle

The text style to apply to descendant Text widgets without explicit style.

Dismissible

A widget that can be dismissed by dragging in the indicated direction. Dragging or flinging this widget in the DismissDirection causes the child to slide...

Divider

A one logical pixel thick horizontal line, with padding on either side.

DragTarget

A widget that receives data when a Draggable widget is dropped. When a draggable is dragged on top of a drag target, the drag target...

Draggable

A widget that can be dragged from to a DragTarget. When a draggable widget recognizes the start of a drag gesture, it displays a feedback...

DraggableScrollableSheet

A container for a Scrollable that responds to drag gestures by resizing the scrollable until a limit is reached, and then scrolling.

Drawer

A Material Design panel that slides in horizontally from the edge of a Scaffold to show navigation links in an application.

DropdownButton

Shows the currently selected item and an arrow that opens a menu for selecting another item.

ElevatedButton

A Material Design elevated button. A filled button whose material elevates when pressed.

ExcludeSemantics

A widget that drops all the semantics of its descendants. This can be used to hide subwidgets that would otherwise be reported but that would...

Expanded

A widget that expands a child of a Row, Column, or Flex.

ExpansionPanel

Expansion panels contain creation flows and allow lightweight editing of an element. The ExpansionPanel widget implements this component.

FadeTransition

Animates the opacity of a widget.

FittedBox

Scales and positions its child within itself according to fit.

FloatingActionButton

A floating action button is a circular icon button that hovers over content to promote a primary action in the application. Floating action buttons are...

Flow

A widget that implements the flow layout algorithm.

FlutterLogo

The Flutter logo, in widget form. This widget respects the IconTheme.

Form

An optional container for grouping together multiple form field widgets (e.g. TextField widgets).

FormField

A single form field. This widget maintains the current state of the form field, so that updates and validation errors are visually reflected in the...

FractionalTranslation

A widget that applies a translation expressed as a fraction of the box's size before painting its child.

FractionallySizedBox

A widget that sizes its child to a fraction of the total available space. For more details about the layout algorithm, see RenderFractionallySizedOverflowBox.

FutureBuilder

Widget that builds itself based on the latest snapshot of interaction with a Future.

GestureDetector

A widget that detects gestures. Attempts to recognize gestures that correspond to its non-null callbacks. If this widget has a child, it defers to that...

GridView

A grid list consists of a repeated pattern of cells arrayed in a vertical and horizontal layout. The GridView widget implements this component.

Hero

A widget that marks its child as being a candidate for hero animations.

Icon

A Material Design icon.

IconButton

An icon button is a picture printed on a Material widget that reacts to touches by filling with color (ink).

IgnorePointer

A widget that is invisible during hit testing. When ignoring is true, this widget (and its subtree) is invisible to hit testing. It still consumes...

Image

A widget that displays an image.

IndexedStack

A Stack that shows a single child from a list of children.

InteractiveViewer

A widget that enables pan and zoom interactions with its child.

IntrinsicHeight

A widget that sizes its child to the child's intrinsic height.

IntrinsicWidth

A widget that sizes its child to the child's intrinsic width.

LayoutBuilder

Builds a widget tree that can depend on the parent widget's size.

LimitedBox

A box that limits its size only when it's unconstrained.

LinearProgressIndicator

A material design linear progress indicator, also known as a progress bar.

ListBody

A widget that arranges its children sequentially along a given axis, forcing them to the dimension of the parent in the other axis.

ListTile

A single fixed-height row that typically contains some text as well as a leading or trailing icon.

ListView

A scrollable, linear list of widgets. ListView is the most commonly used scrolling widget. It displays its children one after another in the scroll direction....

LongPressDraggable

Makes its child draggable starting from long press.

MaterialApp

A convenience widget that wraps a number of widgets that are commonly required for applications implementing Material Design.

MediaQuery

Establishes a subtree in which media queries resolve to the given data.

MergeSemantics

A widget that merges the semantics of its descendants.

Navigator

A widget that manages a set of child widgets with a stack discipline. Many apps have a navigator near the top of their widget hierarchy...

NestedScrollView

A scrolling view inside of which can be nested other scrolling views, with their scroll positions being intrinsically linked.

NotificationListener

A widget that listens for Notifications bubbling up the tree.

Offstage

A widget that lays the child out as if it was in the tree, but without painting anything, without making the child available for hit...

Opacity

A widget that makes its child partially transparent.

OutlinedButton

A Material Design outlined button, essentially a TextButton with an outlined border.

OverflowBox

A widget that imposes different constraints on its child than it gets from its parent, possibly allowing the child to overflow the parent.

Padding

A widget that insets its child by the given padding.

PageView

A scrollable list that works page by page.

Placeholder

A widget that draws a box that represents where other widgets will one day be added.

PopupMenuButton

Displays a menu when pressed and calls onSelected when the menu is dismissed because an item was selected.

PositionedTransition

Animated version of Positioned which takes a specific Animation to transition the child's position from a start position to and end position over the lifetime...

Radio

Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs...

RawImage

A widget that displays a dart:ui.Image directly.

RawKeyboardListener

A widget that calls a callback whenever the user presses or releases a key on a keyboard.

RefreshIndicator

A Material Design pull-to-refresh wrapper for scrollables.

ReorderableListView

A list whose items the user can interactively reorder by dragging.

RichText

The RichText widget displays text that uses multiple different styles. The text to display is described using a tree of TextSpan objects, each of which...

RotatedBox

A widget that rotates its child by a integral number of quarter turns.

RotationTransition

Animates the rotation of a widget.

Row

Layout a list of child widgets in the horizontal direction.

Scaffold

Implements the basic Material Design visual layout structure. This class provides APIs for showing drawers, snack bars, and bottom sheets.

ScaleTransition

Animates the scale of transformed widget.

ScrollConfiguration

Controls how Scrollable widgets behave in a subtree.

Scrollable

Scrollable implements the interaction model for a scrollable widget, including gesture recognition, but does not have an opinion about how the viewport, which actually displays...

Scrollbar

A Material Design scrollbar. A scrollbar indicates which portion of a Scrollable widget is actually visible.

Semantics

A widget that annotates the widget tree with a description of the meaning of the widgets. Used by accessibility tools, search engines, and other semantic...

SimpleDialog

Simple dialogs can provide additional details or actions about a list item. For example they can display avatars icons clarifying subtext or orthogonal actions (such...

SingleChildScrollView

A box in which a single widget can be scrolled. This widget is useful when you have a single box that will normally be entirely...

SizeTransition

Animates its own size and clips and aligns the child.

SizedBox

A box with a specified size. If given a child, this widget forces its child to have a specific width and/or height (assuming values are...

SizedOverflowBox

A widget that is a specific size but passes its original constraints through to its child, which will probably overflow.

SlideTransition

Animates the position of a widget relative to its normal position.

Slider

Sliders let users select from a range of values by moving the slider thumb.

SliverAppBar

A material design app bar that integrates with a CustomScrollView.

SliverChildBuilderDelegate

A delegate that supplies children for slivers using a builder callback.

SliverChildListDelegate

A delegate that supplies children for slivers using an explicit list.

SliverFixedExtentList

A sliver that places multiple box children with the same main axis extent in a linear array.

SliverGrid

A sliver that places multiple box children in a two dimensional arrangement.

SliverList

A sliver that places multiple box children in a linear array along the main axis.

SliverPadding

A sliver that applies padding on each side of another sliver.

SliverPersistentHeader

A sliver whose size varies when the sliver is scrolled to the edge of the viewport opposite the sliver's GrowthDirection.

SliverToBoxAdapter

A sliver that contains a single box widget.

SnackBar

A lightweight message with an optional action which briefly displays at the bottom of the screen.

Stack

This class is useful if you want to overlap several children in a simple way, for example having some text and an image, overlaid with...

Stepper

A Material Design stepper widget that displays progress through a sequence of steps.

StreamBuilder

Widget that builds itself based on the latest snapshot of interaction with a Stream.

Switch

On/off switches toggle the state of a single settings option. The Switch widget implements this component.

TabBar

A Material Design widget that displays a horizontal row of tabs.

TabBarView

A page view that displays the widget which corresponds to the currently selected tab. Typically used in conjunction with a TabBar.

TabController

Coordinates tab selection between a TabBar and a TabBarView.

TabPageSelector

Displays a row of small circular indicators, one per tab. The selected tab's indicator is highlighted. Often used in conjunction with a TabBarView.

Table

A widget that uses the table layout algorithm for its children.

Abc
Text

A run of text with a single style.

TextButton

A Material Design text button. A simple flat button without a border outline.

TextField

Touching a text field places the cursor and displays the keyboard. The TextField widget implements this component.

Theme

Applies a theme to descendant widgets. A theme describes the colors and typographic choices of an application.

Tooltip

Tooltips provide text labels that help explain the function of a button or other user interface action. Wrap the button in a Tooltip widget to...

Transform

A widget that applies a transformation before painting its child.

WidgetsApp

A convenience class that wraps a number of widgets that are commonly required for an application.

Wrap

A widget that displays its children in multiple horizontal or vertical runs.