[flutter] ListView에서 아이템을 클릭하여 상세 정보 보기
Flutter 앱을 개발할 때, ListView를 사용하여 목록을 표시하고, 이 목록에서 아이템을 클릭했을 때 상세 정보를 보여주어야 하는 상황이 있을 수 있습니다. 이러한 기능을 구현하기 위해 onTap 이벤트를 ListView 아이템에 추가하여 상세 페이지로 이동하는 방법을 알아보겠습니다.
ListView 구성하기
먼저, ListView를 구성해야 합니다. ListView.builder를 사용하여 동적인 아이템 목록을 표시할 수 있습니다. 아래는 ListView.builder를 사용한 간단한 예시입니다.
ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(items[index].title),
subtitle: Text(items[index].subtitle),
onTap: () {
// 아이템을 클릭했을 때 처리할 내용 추가
},
);
},
)
상세 페이지로 이동하기
ListView의 아이템을 클릭했을 때 상세 페이지로 이동하기 위해서는 Navigator를 사용하여 새로운 화면으로 이동해야 합니다. MaterialPageRoute를 이용하여 상세 페이지로 아이템 정보를 전달할 수 있습니다.
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailScreen(item: items[index]),
),
);
}
상세 페이지 구성하기
이제, 상세 페이지(DetailScreen)를 구성해야 합니다. 이 페이지에서는 아이템의 상세 정보를 표시합니다.
class DetailScreen extends StatelessWidget {
final Item item;
DetailScreen({required this.item});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Detail Screen'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(item.title),
Text(item.subtitle),
// 상세 정보 표시
],
),
),
);
}
}
이제 ListView에서 아이템을 클릭하면 상세 페이지로 이동하며, 상세 페이지에서는 선택한 아이템의 정보를 표시할 수 있습니다.
이와 같이 ListView를 사용하여 목록을 표시하고 클릭하여 상세 정보를 보는 방법을 알아보았습니다. 개발하시는 과정에서 도움이 되기를 바라며, 언제든지 질문하시면 도움을 드리겠습니다.
참고 자료: