[flutter] 플러터 GridView의 아이템을 스와이프하여 삭제하는 방법은?

플러터 앱에서 GridView의 아이템을 스와이프하여 삭제하는 기능을 구현하려면 다음과 같은 단계를 따를 수 있습니다.

1. Dismissible 위젯 사용

먼저, GridView의 각 아이템을 감싸는 Dismissible 위젯을 사용하여 아이템을 스와이프할 수 있도록 합니다. Dismissible는 사용자 인터랙션에 반응하여 아이템을 제거할 수 있는 위젯입니다.

GridView.builder(
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2,
  ),
  itemCount: _itemCount,
  itemBuilder: (BuildContext context, int index) {
    return Dismissible(
      key: Key('item_$index'),
      onDismissed: (direction) {
        // 아이템 제거 로직
        setState(() {
          _itemList.removeAt(index);
        });
      },
      background: Container(color: Colors.red),
      child: YourItemWidget(item: _itemList[index]),
    );
  },
)

위 코드에서 YourItemWidget은 GridView의 각 아이템을 렌더링하는데 사용되는 사용자 정의 위젯입니다.

2. 아이템 제거 로직 구현

Dismissible 위젯 내부에서 onDismissed 콜백을 사용하여 아이템을 제거하는 로직을 구현합니다. 위 예제에서는 setState를 호출하여 상태를 업데이트하고, _itemList에서 해당 인덱스의 아이템을 제거하는 방식으로 구현되었습니다.

이제 위 단계를 따라 구현하면 사용자가 GridView의 아이템을 스와이프하여 삭제할 수 있는 기능을 갖춘 앱을 만들 수 있을 것입니다.

더 많은 정보는 Flutter 공식 문서를 참고하시기 바랍니다.