[flutter] 플러터 GridView에서 아이템을 클릭해서 상세 정보를 보여주는 방법은?
플러터에서 GridView는 그리드 형식으로 아이템을 보여주는데, 각 아이템을 클릭해서 상세 정보를 보여주는 기능을 구현하려면 어떻게 해야 할까요?
GridView의 아이템 클릭 이벤트 처리
GridView의 아이템을 클릭했을 때 해당 아이템의 상세 정보를 보여주기 위해서는 다음과 같은 단계를 따릅니다.
-
GridView.builder 사용: 아이템을 동적으로 생성하기 위해서 GridView.builder를 사용합니다.
-
아이템 위젯에 GestureDetector 추가: GridView의 각 아이템 위젯에 GestureDetector를 추가하여 클릭 이벤트를 처리할 수 있도록 합니다.
GridView.builder( // ... itemBuilder: (context, index) { return GestureDetector( onTap: () { // 상세 정보 보여주는 메서드 호출 _showDetailInfo(index); }, child: // 각 아이템 위젯 ); }, )
-
상세 정보 보여주는 메서드 구현: 클릭한 아이템에 해당하는 상세 정보를 보여주는 메서드를 구현합니다.
void _showDetailInfo(int index) { // 선택한 아이템의 상세 정보를 보여주는 화면으로 이동 Navigator.push( context, MaterialPageRoute( builder: (context) => DetailInfoScreen(index: index), ), ); }
참고 자료
- Flutter GestureDetector: https://api.flutter.dev/flutter/widgets/GestureDetector-class.html
- Flutter Navigation: https://flutter.dev/docs/cookbook/navigation/navigation-basics