[flutter] 플러터(IndexedStack)란 무엇인가요?

플러터에서 IndexedStack은 위젯을 겹쳐서 표시하는 일련의 중첩된 위젯입니다. 이 위젯은 여러 개의 하위 위젯을 가지고 있으며, 인덱스를 통해 현재 보여지는 위젯을 결정합니다. 인덱스를 지정하면 해당 위치에 있는 하위 위젯이 화면에 표시되고, 다른 위젯은 화면에서 숨겨집니다.

IndexedStack 위젯을 사용하면 여러 개의 상태 또는 뷰를 관리할 때 유용합니다. 예를 들어 특정 상태에 따라 다른 화면을 보여줄 때, 각 상태에 대한 위젯을 IndexedStack에 추가하고 해당 상태의 인덱스를 지정하여 사용할 수 있습니다.

IndexedStack은 하위 위젯 중에서 최상단에 있는 위젯만 터치 이벤트를 처리합니다. 따라서 IndexedStack의 하위 위젯이 겹쳐져 있다면, 최상단에 있는 위젯이 터치 이벤트를 수신하게 됩니다.

다음은 IndexedStack의 기본 구조를 보여주는 예시 코드입니다.

IndexedStack(
  index: _currentIndex,
  children: [
    Container(
      color: Colors.red,
      child: Text("Widget 1"),
    ),
    Container(
      color: Colors.blue,
      child: Text("Widget 2"),
    ),
    Container(
      color: Colors.green,
      child: Text("Widget 3"),
    ),
  ],
)

위 코드에서 _currentIndex 변수는 현재 화면에 표시될 위젯의 인덱스를 나타냅니다. 이를 통해 _currentIndex 값을 변경하면 해당 인덱스에 해당하는 위젯이 화면에 보여지게 됩니다.

IndexedStack은 유용한 위젯이지만, 하위 위젯은 모두 메모리에 로드되므로 많은 수의 하위 위젯을 가지고 있는 경우에는 주의해야 합니다. 필요하지 않은 위젯은 로드하지 않도록 조심해야 합니다.

더 자세한 내용은 공식 플러터 문서를 참조하세요.