[flutter] 플러터 GridView에서 아이템을 선택한 상태에서 다른 아이템을 선택하면 이전에 선택한 아이템에서 선택 해제되는 방법은?

예를 들어, 다음과 같이 상태를 관리하고 토글하는 메소드를 작성할 수 있습니다.

List<bool> _isSelected = List.generate(itemCount, (index) => false);

void toggleItemSelection(int index) {
  setState(() {
    _isSelected[index] = !_isSelected[index];
  });
}

그리드 뷰 아이템을 터치할 때 이 메소드를 호출하여 아이템의 선택 상태를 토글할 수 있습니다.

GridView.builder(
  itemCount: itemCount,
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2,
  ),
  itemBuilder: (context, index) {
    return GestureDetector(
      onTap: () {
        toggleItemSelection(index);
      },
      child: Container(
        color: _isSelected[index] ? Colors.blue : Colors.white,
        child: Center(
          child: Text('Item $index'),
        ),
      ),
    );
  },
)

이렇게 함으로써, 플러터 GridView에서 아이템을 선택한 상태에서 다른 아이템을 선택하면 이전에 선택한 아이템에서 선택 해제되는 방법을 구현할 수 있습니다.