[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 공식 문서를 참고하시기 바랍니다.