[flutter] ListView에서 아이템을 스와이프하여 삭제하기

Flutter 앱에서 ListView를 사용하여 목록을 표시하고, 사용자가 아이템을 스와이프하여 삭제할 수 있는 기능을 추가하는 방법에 대해 알아보겠습니다.

ListView 구현하기

우선, ListView를 구현하여 목록을 표시합니다. ListView.builder나 ListView.separated 등의 생성자를 사용하여 데이터를 기반으로 아이템들을 빌드합니다.

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    return ListTile(
      title: Text(items[index]),
      // 추가적인 위젯들 추가 가능
    );
  },
)

Dismissible 위젯 추가하기

ListView 아이템을 스와이프하여 삭제하기 위해 Dismissible 위젯을 추가합니다. Dismissible는 주어진 키를 사용하여 아이템을 스와이프할 때 일어나는 행동을 지정할 수 있습니다.

ListView.builder(
  itemCount: items.length,
  itemBuilder: (context, index) {
    return Dismissible(
      key: Key(items[index]),
      onDismissed: (direction) {
        setState(() {
          items.removeAt(index);
        });
      },
      background: Container(
        color: Colors.red,
        alignment: Alignment.centerRight,
        padding: EdgeInsets.symmetric(horizontal: 20.0),
        child: Icon(Icons.delete, color: Colors.white),
      ),
      child: ListTile(
        title: Text(items[index]),
        // 추가적인 위젯들 추가 가능
      ),
    );
  },
)

요약

ListView에서 아이템을 스와이프하여 삭제하기 위해 Dismissible 위젯을 사용하여 아이템을 스와이프할 때의 동작을 정의할 수 있습니다. 위의 예제를 참고하여 앱에 ListView를 구현하고, 사용자가 목록에서 아이템을 스와이프하여 삭제할 수 있는 기능을 추가해보세요.

이상으로 Flutter에서 ListView에서 아이템을 스와이프하여 삭제하는 방법에 대해 알아보았습니다.

참고 자료: