[flutter] 플러터(expandable)의 기능과 특징

플러터는 크로스 플랫폼 앱 개발을 위한 Google의 UI 프레임워크입니다. 플러터는 다양한 기능을 제공하는데, 그 중 하나가 expandable 기능입니다. expandable은 UI 요소를 펼치거나 접을 수 있는 동적인 기능을 제공합니다.

ExpandableWidget

플러터에서 expandable 기능을 사용하기 위해서는 ExpandableWidget이라는 위젯을 사용해야 합니다. ExpandableWidget은 펼쳐진 상태와 접힌 상태를 관리하고, 애니메이션 효과를 적용할 수 있도록 도와줍니다.

ExpandableWidget(
  expanded: true, // 펼쳐진 상태
  child: Container(
    child: Text('내용'),
  ),
)

위의 예시에서, expanded 속성을 true로 설정하여 초기에 위젯이 펼쳐진 상태로 시작합니다. child 속성에는 펼쳐질 내용을 감싸는 위젯을 넣어줍니다.

ExpandableList

플러터의 expandable 기능은 리스트 형태로 구현할 수도 있습니다. 이때 ExpandableList를 사용하여 펼쳐진 상태와 접힌 상태를 유지하며 리스트 아이템을 관리할 수 있습니다.

ExpandableList(
  expanded: [false, false, false], // 초기에 접혀진 상태
  children: [
    Container(child: Text('아이템 1')),
    Container(child: Text('아이템 2')),
    Container(child: Text('아이템 3')),
  ],
)

위의 예시에서, expanded 배열을 사용하여 초기에 각 아이템들이 접혀진 상태로 시작합니다. children 배열에는 펼쳐질 리스트 아이템들을 담아줍니다.

ExpandableButton

expandable을 사용할 때, 사용자가 펼침/접힘 상태를 변경할 수 있는 버튼이 필요할 수 있습니다. 이때 사용할 수 있는 위젯이 ExpandableButton입니다. ExpandableButton을 터치하면, 펼쳐진 상태와 접힌 상태를 전환할 수 있습니다.

ExpandableButton(
  child: Text('더보기'),
  expandedChild: Text('내용'),
)

위의 예시에서, child 속성에는 버튼에 표시될 텍스트나 아이콘을 넣어줍니다. expandedChild 속성에는 버튼을 눌렀을 때 나타날 내용을 넣어줍니다.

Expandable의 장점

expandable을 사용하면 효율적인 UI 설계를 할 수 있습니다. 사용자가 필요한 정보를 더 많이 볼 수 있고, 필요하지 않은 정보는 감추어 사용자 경험을 개선할 수 있습니다. 또한, 애니메이션과 함께 부드러운 화면 전환을 구현할 수 있습니다.

플러터의 expandable 기능은 앱의 사용성을 향상시키는데 유용하며, 다양한 유형의 expandable 위젯을 사용하여 원하는 디자인을 구현할 수 있습니다.

참고 자료