ウィジェットは、UIのさまざまな要素を表現するための再利用可能なコンポーネントです。Flutterでは、ウィジェットはツリー構造を形成し、親ウィジェットから子ウィジェットへと階層的に配置されます。このツリー構造により、ウィジェット同士の関係性や配置方法を柔軟に定義することができます。
ウィジェットには、状態を持つStatefulウィジェットと状態を持たないStatelessウィジェットの2つの主要なタイプがあります。Statefulウィジェットは、ユーザーのインタラクションやアプリケーションの状態の変化に応じて再描画される可能性があります。一方、Statelessウィジェットは、一度描画されたら変更されることはありません。
以下に、ウィジェットの基本的な使い方とコード例を示します。
- StatelessWidgetの使用例:
import 'package:flutter/material.dart';
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.blue,
child: Text('Hello, World!'),
);
}
}
- StatefulWidgetの使用例:
import 'package:flutter/material.dart';
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
int counter = 0;
void incrementCounter() {
setState(() {
counter++;
});
}
@override
Widget build(BuildContext context) {
return Container(
color: Colors.blue,
child: Column(
children: [
Text('Counter: $counter'),
RaisedButton(
onPressed: incrementCounter,
child: Text('Increment'),
),
],
),
);
}
}
以上のコード例では、StatelessWidgetとStatefulWidgetを使用して簡単なウィジェットを作成しています。StatefulWidgetでは、状態を保持するためのStateクラスを定義し、setStateメソッドを使用して状態の変更を通知します。
ウィジェットは、さまざまなプロパティやメソッドを持っており、これらを活用することでさまざまなUI要素を作成することができます。また、ウィジェット同士を組み合わせることで複雑なUIを構築することも可能です。
以上がFlutterにおけるウィジェットの基本的な使い方とコード例です。ウィジェットを使いこなすことで、柔軟で魅力的なモバイルアプリのUIを作成することができます。