【Flutter 비망록】DataTable을 부모 Widget에 맞게 배치한다

4896 단어 FlutterDart비망록

소개


Flutter 를 이용한 앱 개발을 하고 있는 중
개인적으로 막힌 부분을 정기적으로 기사로 해 나가려고 생각합니다.

DataTable이란?


  • FlutterWidget 의 하나로 데이터를 좋은 느낌으로 복수로 분할해 주는 것

  • ↓이런 느낌의 녀석


  • Flutter 공식

  • 어디서 막혔는지



    공식이나 기사에있는 것을 몇 가지 시도했지만,
    ↓처럼 여백이 비어 버리거나 화면에 맞지 않거나 했다.


    시도했지만 의미가 없었던 것 (자신에게는 사용할 수 없었던 것)


  • ConstrainedBox를 사용하여 가로 폭을 고정 한 →
  • Datatable 에서 Container 를 둘러싸고 DataTable 를 고정→상위

  • (그 밖에도 여러가지 시도했지만 자신에게는 잘 몰랐다....)

    해결책



    다음과 같이 width의 자식 요소로 SingleChildScrollView를 설정하고,
    그 아이 요소에 FittedBox를 넣는 것으로 화면내에 데이터가 균등하게 들어갔다.
    DataTable 란 무엇입니까?

    위젯이 부모의 크기에 맞지 않을 때 자식 위젯이 들어갈 수 있도록 해주는 것
    FittedBox 란 무엇입니까?

    Widget이 기기의 세로 크기를 초과하면 스크롤 할 수 있습니다.

    data.dart
     SingleChildScrollView(
       scrollDirection: Axis.vertical,
       child: FittedBox(child: data(documents)));
    

    datatable_widget.dart
     Widget recordData(documents) => DataTable(
              columns: const <DataColumn>[
                DataColumn(
                  label: Text(
                    "hoge",
                    style: TextStyle(fontStyle: FontStyle.italic),
                  ),
                ),
             ],
              rows: documents
                  .map<DataRow>((document) => DataRow(cells: <DataCell>[
                        DataCell(Text(document["hogeData"]),
                            showEditIcon: false, placeholder: false), 
                      ]))
                  .toList());
    

    마지막으로



    우선 부모가 멈추지 않을 때는 SingleChildScrollView 를 사용하면 좋다는 것을 이번에는 인식했다.
    이번이 첫 투고 한편 Flutter 초학자이므로 사용법이나 설명에 대해 잘못되어 있으면 죄송합니다.
    (그 때는 코멘트 정도 잘 부탁드립니다)

    참고문헌



    (↓매우 참고가 되었습니다!)
    Flutter DataTable remove extra padding
    SingleChildScrollView
    FittedBox 정보

    좋은 웹페이지 즐겨찾기