[flutter] DataTable에서 특정 셀에 컨텍스트 메뉴 추가하는 방법
Flutter의 DataTable는 효율적인 데이터 표 형식을 구축하는 데 탁월한 도구입니다. 특정 셀에 컨텍스트 메뉴를 추가하는 방법에 대해 알아봅시다.
1. DataTable 생성
먼저, DataTable을 생성합니다. 다음은 간단한 예시입니다.
DataTable(
columns: [
DataColumn(label: Text('이름')),
DataColumn(label: Text('이메일')),
],
rows: [
DataRow(
cells: [
DataCell(Text('홍길동')),
DataCell(Text('hong@example.com')),
],
),
DataRow(
cells: [
DataCell(Text('김철수')),
DataCell(Text('kim@example.com')),
],
),
],
)
2. 컨텍스트 메뉴 추가
특정 셀에 컨텍스트 메뉴를 추가하려면, DataCell 위젯을 사용하여 해당 셀을 래핑하고, onLongPress 콜백을 제공하여 오랫동안 누르는 동작에 대한 처리를 정의합니다.
DataCell(
Text('홍길동'),
onLongPress: () {
// 컨텍스트 메뉴 띄우기
},
)
이제, 위 코드 블록 안에서 컨텍스트 메뉴를 띄우기 위한 로직을 추가할 수 있습니다.
3. 컨텍스트 메뉴 구성
선택된 셀에 인덱스를 확인하고, 이에 따른 컨텍스트 메뉴를 구성합니다.
void _showContextMenu(String name) {
// 컨텍스트 메뉴 띄우기
// 선택된 셀의 내용(name)을 기준으로 구성
// 예: 수정, 삭제 등의 옵션 추가
}
이제 _showContextMenu 메서드를 사용하여 컨텍스트 메뉴를 띄울 수 있습니다.
위와 같은 방법으로, DataTable의 특정 셀에 컨텍스트 메뉴를 추가할 수 있습니다. 더 많은 기능을 추가하고 싶다면 GestureDetectors와 함께 커스텀하게 구현할 수도 있습니다.
이것으로 Flutter의 DataTable에서 특정 셀에 컨텍스트 메뉴를 추가하는 방법에 대한 소개를 마치겠습니다. 기타 궁금한 사항이 있으시다면 언제든지 문의해 주세요!
참고자료:
- https://api.flutter.dev/flutter/material/DataTable-class.html
- https://flutter.dev/docs