[flutter] ListView에서 아이템을 슬라이드하여 닫기/열기 기능 추가하기

이번에는 Flutter 앱에서 ListView의 아이템을 슬라이드하여 닫기 또는 열기 기능을 추가하는 방법에 대해 알아보겠습니다.

1. Dismissible 위젯 사용하기

이 기능을 구현하기 위해 Dismissible 위젯을 사용합니다. Dismissible 위젯은 리스트 아이템을 슬라이드하여 삭제 또는 다양한 작업을 수행할 수 있게 해줍니다.

ListView.builder(
  itemBuilder: (context, index) {
    return Dismissible(
      key: Key('item_$index'),
      onDismissed: (direction) {
        // 아이템을 슬라이드하여 삭제할 경우의 처리 로직
      },
      background: Container(
        color: Colors.red,
        child: Icon(Icons.delete),
      ),
      child: ListTile(
        title: Text('아이템 $index'),
      ),
    );
  },
  itemCount: 10,
)

위의 예시 코드에서 Dismissible 위젯을 사용하여 각 리스트 아이템에 슬라이딩 기능을 추가할 수 있습니다. (여기서는 왼쪽 슬라이드를 통해 삭제 기능을 구현했습니다.)

2. 추가적인 기능 구현하기

Dismissible 위젯은 background 속성으로 슬라이딩할 때 보여줄 배경을 지정할 수 있습니다. 또한 onDismissed 콜백을 사용하여 아이템이 슬라이딩되었을 때의 처리 로직을 추가할 수 있습니다.

이를 응용하여 리스트 아이템을 슬라이드하여 열기/닫기와 같은 기능을 추가할 수 있습니다.

마무리

Flutter의 Dismissible 위젯을 활용하여 ListView의 아이템을 슬라이드하여 다양한 기능을 추가하는 방법에 대해 살펴봤습니다. 이를 참고하여 앱에 적합한 기능을 구현해 보세요.

참고 자료: Flutter - Dismissible class