일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Yocto
- python
- 클래스
- text
- import
- List
- ML
- 함수
- variable
- kotlin
- Flutter
- 웹크롤러
- 코틀린
- 콜렉션
- set
- 다트
- Class
- DART
- 파이썬
- animation
- 플러터
- Android
- textstyle
- Collection
- crawler
- pushnamed
- 크롤러
- function
- package
- map
- Today
- Total
조용한 담장
Flutter : DataTable 본문
DataTable
Material Design 의 데이터 테이블을 그려주는 Flutter Widget 이다.
DataTable class
DataTable({Key key, @required List columns, int sortColumnIndex, bool sortAscending: true, ValueSetter onSelectAll, double dataRowHeight: kMinInteractiveDimension, double headingRowHeight: 56.0, double horizontalMargin: 24.0, double columnSpacing: 56.0, @required List rows })
columns 리스트는 표의 첫 행에 들어가는 데이터 리스트 이며 각 열의 이름이 된다. 각 항목은 DataColumn 으로 구성되며 각각이 위젯이다.
rows 는 표의 각 행의 셀들에 들어갈 데이터를 가진 리스트이다. 각 항목은 DataRow 로 구성된다.
각 셀의 margin, space 값들을 지정하여 크기를 조절할 수 있다.
간단한 예제로는 아래와 같다.
DataColumn class
DataColumn({@required Widget label, String tooltip, bool numeric: false, DataColumnSortCallback onSort })
One column configuration must be provided for each column to display in the table.
표의 열에 관련된 설정을 가진 클래스 이다.
label 은 해당 열의 항목 이름이 된다.
numeric 은 해당 열의 데이터가 숫자로 처리되게 한다.
onSort 는 해당 열을 기준으로 정렬을 하는 콜백 함수이다.
DataRow class
DataRow({LocalKey key, bool selected: false, ValueChanged onSelectChanged, @required List cells })
One row configuration must be provided for each row to display in the table.
표의 행에 관한 설정을 가지며 각 셀의 데이터를 가지고 있는 클래스 이다.
cells 는 각 셀들의 값을 가진 위젯의 리스트 이다.
DataCell
DataCell(Widget child, { bool placeholder: false, bool showEditIcon: false, VoidCallback onTap })
The data for a cell of a DataTable.
표의 각 셀에 대항하는 위젯을 가진다. 설정에 따라 사용자가 값을 수정하거나 입력하도록 할 수 있다.
child 는 표의 셀에 그려지는 위젯이다.
Example
온라인 사이트에 공개되어 있는 CSV 파일을 읽어 DataTable 을 만드는 예제이다.
온라인에서 CSV 파일을 읽어온다.
첫번째 행은 아래의 값으로 되어 있는데 표에서 첫 줄에 들어가 각 열의 이름이 되는 값으로, 따로 csvHeadingRow
에 저장한다.
rank,name,confed,off,def,spi
그리고 첫 줄의 값을 뺀 나머지 표 데이터가 될 값들은 csvRows
에 저장한다.
표의 크기값을 지정하고, columns 와 rows 를 지정하는 함수를 호출한다.
csvHeadingRow
의 값으로 columns 에 들어갈 List<DataColumn>
을 생성한다.
'rank' 열은 numeric
으로 설정하고 sort 함수 _dataColumnSort()
를 지정한다.
csvRows
의 값으로 rows 에 들어갈 List<DataRow>
를 생성한다.
데이터가 많아 표가 크면 한 화면에 다 안그려진다. SingleChildScrollView
를 사용하여 화면이 스크롤 될 수 있게 해준다.
Example Code
Reference
'Flutter' 카테고리의 다른 글
Flutter : sqflite package (SQLite plugin) (1) | 2019.11.08 |
---|---|
Flutter : permission_handler (0) | 2019.11.05 |
Flutter : Draggable (0) | 2019.10.28 |
Flutter : SelectableText (0) | 2019.10.21 |
Flutter : Navigator (0) | 2019.10.17 |