[flutter] 플러터 GridView에서 아이템을 클릭해서 상세 정보를 보여주는 방법은?

플러터에서 GridView는 그리드 형식으로 아이템을 보여주는데, 각 아이템을 클릭해서 상세 정보를 보여주는 기능을 구현하려면 어떻게 해야 할까요?

GridView의 아이템 클릭 이벤트 처리

GridView의 아이템을 클릭했을 때 해당 아이템의 상세 정보를 보여주기 위해서는 다음과 같은 단계를 따릅니다.

  1. GridView.builder 사용: 아이템을 동적으로 생성하기 위해서 GridView.builder를 사용합니다.

  2. 아이템 위젯에 GestureDetector 추가: GridView의 각 아이템 위젯에 GestureDetector를 추가하여 클릭 이벤트를 처리할 수 있도록 합니다.

    GridView.builder(
      // ... 
      itemBuilder: (context, index) {
        return GestureDetector(
          onTap: () {
            // 상세 정보 보여주는 메서드 호출
            _showDetailInfo(index);
          },
          child: // 각 아이템 위젯
        );
      },
    )
    
  3. 상세 정보 보여주는 메서드 구현: 클릭한 아이템에 해당하는 상세 정보를 보여주는 메서드를 구현합니다.

    void _showDetailInfo(int index) {
      // 선택한 아이템의 상세 정보를 보여주는 화면으로 이동
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => DetailInfoScreen(index: index),
        ),
      );
    }
    

참고 자료

  1. Flutter GestureDetector: https://api.flutter.dev/flutter/widgets/GestureDetector-class.html
  2. Flutter Navigation: https://flutter.dev/docs/cookbook/navigation/navigation-basics