Flutterでは、すべてがウィジェットです — UI要素(ボタン、テキスト、画像)、レイアウト構造(行、列、パディング)、さらにアプリ自体もすべてウィジェットです。ウィジェットは不変の構築ブロックで、これらを組み合わせてユーザーインターフェース全体を形成します。
すべてがウィジェット
Widgets describe the UI. EVERYTHING is a widget:
→ visible elements: Text, Image, Icon, Button, etc.
→ layout: Row, Column, Container, Padding, Center, Stack, etc.
→ structure: Scaffold (page structure), AppBar, etc.
→ even the app itself (MaterialApp) and abstract things (Padding, Theme)
→ You build UI by COMPOSING widgets into a tree (widgets contain other widgets).
ウィジェットをツリーに構成する
// build a UI by NESTING widgets (composition)
Scaffold( // page structure
appBar: AppBar(title: Text('Home')), // app bar with text
body: Center( // centers its child
child: Column( // vertical layout
children: [
Text('Hello'), // text widget
ElevatedButton( // a button
onPressed: () {},
child: Text('Click'),
),
],
),
),
)
// → a WIDGET TREE: Scaffold > Center > Column > [Text, Button]
