플러터에서 IndexedStack 위젯은 여러 개의 자식 위젯 중 하나만 보여줄 수 있는 위젯입니다. 이때 각 인덱스에 대한 전환 액션을 추가하려면 다음과 같은 방법을 사용할 수 있습니다.
- IndexedStack을 사용할 StatefulWidget을 생성합니다.
class MyIndexedStack extends StatefulWidget { @override _MyIndexedStackState createState() => _MyIndexedStackState(); }
- _MyIndexedStackState 클래스를 생성합니다.
```dart
class _MyIndexedStackState extends State
{ int currentIndex = 0;
@override Widget build(BuildContext context) { return Column( children: [ // 인덱스에 따라 보여줄 버튼들을 생성합니다. Row( mainAxisAlignment: MainAxisAlignment.center, children: [ FlatButton( onPressed: () { setState(() { currentIndex = 0; }); }, child: Text(‘인덱스 0’), ), FlatButton( onPressed: () { setState(() { currentIndex = 1; }); }, child: Text(‘인덱스 1’), ), FlatButton( onPressed: () { setState(() { currentIndex = 2; }); }, child: Text(‘인덱스 2’), ), ], ),
// IndexedStack을 사용하여 여러 개의 자식 위젯 중 하나만 보여줍니다.
IndexedStack(
index: currentIndex,
children: [
Container(
// 인덱스 0에서 보여줄 위젯
),
Container(
// 인덱스 1에서 보여줄 위젯
),
Container(
// 인덱스 2에서 보여줄 위젯
),
],
),
],
); } } ```
- 위젯을 사용하기 위해 해당 StatefulWidget을 호출합니다.
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: MyIndexedStack(), ), ); } }
위와 같이 구현하면 각 버튼을 클릭할 때마다 IndexedStack 위젯의 인덱스가 변경되어 해당 인덱스에 맞는 위젯이 보여지게 됩니다. 이를 통해 각 인덱스에 대한 전환 액션을 추가할 수 있습니다.
더 자세한 내용은 플러터 공식 문서를 참고하시면 도움이 될 것입니다.