[flutter] 플러터 Table 위젯에서 테이블 데이터 정렬하기

플러터(Table) 위젯은 행 및 열의 데이터를 표현하는 데 사용됩니다. 이 테이블에서 데이터를 정렬하는 방법에 대해 알아보겠습니다.

열 데이터 정렬하기

Table 위젯에서 열 데이터를 정렬하려면, DataColumn 위젯의 onSort 프로퍼티를 사용하여 정렬 동작을 지정할 수 있습니다.

DataTable(
  columns: [
    DataColumn(
      label: Text('이름'),
      onSort: (columnIndex, ascending) {
        if (ascending) {
          // 열의 데이터를 오름차순으로 정렬
        } else {
          // 열의 데이터를 내림차순으로 정렬
        }
      },
    ),
    DataColumn(
      label: Text('나이'),
      onSort: (columnIndex, ascending) {
        if (ascending) {
          // 열의 데이터를 오름차순으로 정렬
        } else {
          // 열의 데이터를 내림차순으로 정렬
        }
      },
    ),
  ],
  // 테이블 데이터
);

위의 예제에서, 각 DataColumn의 onSort 콜백 함수를 사용하여 데이터를 오름차순이나 내림차순으로 정렬할 수 있습니다.

행 데이터 정렬하기

플러터 Table 위젯에서는 행 데이터를 직접적으로 정렬하는 기능은 기본으로 제공되지 않습니다. 하지만, 행 데이터를 정렬하려면 DataTable에 출력할 데이터를 미리 정렬한 후에 표시할 수 있습니다.

List<DataRow> sortedRows = _rows.toList();
sortedRows.sort((a, b) => a.name.compareTo(b.name));

DataTable(
  columns: [
    DataColumn(label: Text('이름')),
    DataColumn(label: Text('나이')),
  ],
  rows: sortedRows,
);

위의 예제에서, _rows 리스트를 원하는 기준에 따라 미리 정렬한 후, 정렬된 행을 사용하여 DataTable 위젯을 만듭니다.

이렇게 함으로써, Table 위젯에서 열 데이터와 행 데이터를 각각 정렬하는 방법에 대해 알아보았습니다.

마무리

이 문서에서는 플러터 Table 위젯에서 테이블 데이터를 정렬하는 방법을 살펴보았습니다. DataTable 위젯의 onSort 프로퍼티를 활용하여 열 데이터를 정렬하고, 행 데이터를 정렬하기 위해서는 미리 정렬된 데이터를 DataTable에 전달하는 방법을 사용할 수 있습니다.

이러한 접근 방법을 활용하여 사용자가 데이터를 편리하게 정리하고 확인할 수 있는 앱을 개발할 수 있습니다.

참고: Flutter DataTable class