[flutter] 플러터(IndexedStack)와 다른 스택(Stack) 위젯의 차이점은 무엇인가요?

플러터에서는 IndexedStack과 Stack이라는 두 가지 위젯이 있습니다. 이 두 위젯은 다양한 애플리케이션 상황에 따라 사용될 수 있는데, 그 차이점을 알아보겠습니다.

  1. 인덱스 기반 스택(IndexedStack):
    • IndexedStack은 자식 위젯들을 인덱스를 기반으로 스택 형태로 쌓아놓는 위젯입니다.
    • 인덱스를 사용하여 자식 위젯 중 하나를 선택적으로 표시할 수 있습니다.
    • 선택된 자식 위젯은 다른 자식 위젯들을 가려서 화면에 표시됩니다.
    • 예를 들어, 다음과 같은 상황에서 사용될 수 있습니다.
      • TabBar를 사용하여 여러 개의 탭을 만들고, 각 탭에 대한 콘텐츠를 IndexedStack을 통해 관리할 수 있습니다.
      • 페이지의 로딩 상태와 에러 상태를 관리하여, 로딩 중이거나 에러가 발생했을 때 화면을 변경할 수 있습니다.
  2. 일반 스택(Stack):
    • Stack은 자식 위젯들을 겹쳐서 쌓아놓는 위젯입니다.
    • 자식 위젯들은 어떤 위치와 크기로 배치될지 설정할 수 있습니다.
    • 가장 마지막에 추가된 자식 위젯이 화면 상단에 표시되며, 이후에 추가되는 위젯들은 이전 위젯 위에 겹쳐집니다.
    • 예를 들어, 다음과 같은 상황에서 사용될 수 있습니다.
      • 다중 레이어 UI를 구성할 때, Stack을 사용하여 다른 위젯들을 겹쳐서 배치할 수 있습니다. 예를 들어, 배경 이미지 위에 텍스트 및 아이콘을 배치할 수 있습니다.

이러한 차이점으로 인해 IndexedStack과 Stack은 각각 다른 상황에 적합합니다. 애플리케이션의 상황과 요구사항에 맞게 적합한 위젯을 선택하여 사용하면 됩니다.

Refernce: