SEN 182 assignment
By Pam Patriarch Yeipyeng
VUG/SEN/24/12478
*Lookup 100 flutter widgets and highlight their functions and classifications
[Link] Widget
1. Text – Displays a string of text with single or multiple styles.
2. Row/ Column– Arranges children horizontally (`Row`) or vertically (`Column`).
3. Container– A box model widget that combines painting, positioning, and sizing.
4. `Center – Centers its child widget.
5. Padding – Adds padding around its child.
6. `Align– Aligns its child within itself.
7. Expanded – Expands a child of `Row`/`Column` to fill available space.
8. `SizedBox – A box with a fixed size, useful for adding whitespace.
9. Spacer – Takes up space in `Row`/`Column` (flexible space).
10. `AspectRatio – Enforces a specific aspect ratio on its child.
2. Layout Widgets
11. Stack – Overlaps children widgets (like `Positioned` for precise placement).
12. ListView– A scrollable list of widgets.
13. GridView – A scrollable grid of widgets.
14. Flex– Uses flex layout (similar to `Row`/`Column` but more customizable).
15. `Wrap – Flows children in horizontal/vertical direction, wrapping to next line when space runs
out.
16. Flow– A more efficient but complex way to arrange children based on constraints.
17. Table – Arranges children in a table layout.
18. CustomScrollView– Combines multiple scrollable widgets (like `ListView` + `GridView`).
19. SliverAppBar– A collapsible app bar for `CustomScrollView`.
20. LayoutBuilder – Builds a widget tree based on parent constraints.
3. Material & Cupertino Widgets (UI Components)
21. AppBar– A Material Design app bar (top navigation bar).
22. `Scaffold– Implements basic Material Design layout (app bar, body, FAB, drawer, etc.).
23. `FloatingActionButton– A circular button that floats above content.
24. BottomNavigationBar– A bottom navigation bar for switching views.
25. Drawer – A sliding panel from the side (for navigation).
26. SnackBar – A temporary message at the bottom of the screen.
27. `AlertDialog – A popup dialog with title, content, and actions.
28. Card – A Material Design card with rounded corners and shadow.
29. `Chip – A compact element representing input, attribute, or action.
30. `Divider– A thin horizontal line with padding.
4. Input & Form Widgets
31. TextField – A text input field.
32. TextFormField– A `TextField` with built-in validation (used with `Form`).
33. `Form– Groups and validates multiple form fields.
34. `Checkbox – A toggleable checkbox.
35. `Radio`– A single selection from multiple options.
36. Switch– An on/off toggle switch.
37. Slider– A draggable slider to select a range.
38. DropdownButton– A button showing a dropdown menu.
39. `DatePicker / `TimePicker– Material Design pickers for date/time.
40. CupertinoPicker – iOS-style scrollable picker.
5. Buttons & Interactive Widgets
41. `ElevatedButton – A Material Design raised button.
42. `TextButton– A flat button without elevation.
43. OutlinedButton – A button with an outline.
44. `IconButton – A button with an icon.
45. GestureDetector– Detects taps, drags, and other gestures.
46. `InkWell– A Material Design touch ripple effect widget.
47. `Dismissible – Allows a widget to be dismissed by swiping.
48. `Draggable/ DragTarget– Enables drag-and-drop functionality.
49. `InteractiveViewer – Allows pan/zoom interactions (like images).
50. `Tooltip– A small description popup on long-press.
6. Animation & Motion Widgets
51. AnimatedContainer– Animates changes in `Container` properties.
52. AnimatedOpacity– Animates opacity changes.
53. Hero– Creates a shared element transition between screens.
54. TweenAnimationBuilder– Animates between two values over time.
55. Transform – Applies transformations (rotate, scale, translate).
56. FadeTransition– Animates opacity with an `Animation`.
57. RotationTransition– Animates rotation.
58. ScaleTransition – Animates scaling.
59. SlideTransition – Animates positional offset.
60. AnimatedBuilder– Rebuilds a widget when animation changes.
7. Styling & Theming Widgets
61. Theme– Applies a theme to descendant widgets.
62. MediaQuery– Accesses screen size and device info.
63. MaterialApp– Wraps the app with Material Design defaults.
64. CupertinoApp– Wraps the app with iOS-style defaults.
65. `DefaultTextStyle– Sets default text style for descendants.
66. `DecoratedBox– Paints a decoration behind or in front of a child.
67. ClipRRect – Clips child with rounded corners.
68. ClipOval – Clips child into an oval shape.
69. `BackdropFilter– Applies image filters (e.g., blur).
70. Opacity– Makes child partially transparent.
8. Navigation & Routing Widgets
71. Navigator – Manages app screens/routes.
72. `MaterialPageRoute – A route with Material Design transitions.
73. CupertinoPageRoute– iOS-style route transition.
74. PageView – A scrollable page-based view.
75. TabBar / TabBarView– Implements tabbed navigation.
76. BottomSheet– A sliding panel from the bottom.
77. Overlay– Displays widgets on top of others (e.g., dialogs).
78. WillPopScope– Intercepts back button press.
79. Hero– Shared element transition between screens.
80. Router– Advanced declarative routing (for web & deep linking).
9. State Management Widgets
81. StatefulWidget– A widget with mutable state.
82. InheritedWidget – Efficiently passes data down the widget tree.
83. Provider – Simplifies state management (from `provider` package).
84. ValueListenableBuilder – Rebuilds when a `ValueListenable` changes.
85. StreamBuilder – Builds UI based on `Stream` data.
86. FutureBuilder – Builds UI based on `Future` completion.
87. ChangeNotifier– A class that can be listened to for changes.
88. Consumer – (`provider` package) Listens to changes in a model.
89. BlocBuilder– (`flutter_bloc` package) Builds UI based on BLoC state.
90. Redux StoreProvider– (`flutter_redux` package) Provides Redux store.
10. Advanced & Utility Widgets
91. SafeArea– Avoids system UI (notches, status bars).
92. Visibility – Shows/hides a child widget.
93. Offstage– Hides a child without removing from tree.
94. AbsorbPointer– Prevents children from receiving pointer events.
95. IgnorePointer– Similar to `AbsorbPointer` but doesn't absorb events.
96. FractionallySizedBox– Sizes child relative to parent’s dimensions.
97. ConstrainedBox– Imposes additional constraints on child.
98. Builder– Obtains a `BuildContext` for its child.
99. FutureBuilder– Builds UI based on asynchronous computation.
100. ReorderableListView– A list with drag-to-reorder functionality.