1
resposta

Dúvida sobre DataTable no Flutter

Olá. Estou com um problema. Desenvolvi uma DataTable, que precisa aparecer duas colunas, mas sem nome acima, apenas os dados. Coloquei dois DataColumn sem nome porque o widget exige o atributo columns para gerar a DataTable. Não aparece o nome, mas aparece o espaço dos widges DataColumn. Eu gostaria de saber se é possivel tirar esse espaço, assim como quando a scrollbar é rolada. Segue abaixo as o código. Obs: A DataTable ou Table, está estáica, ms ela será dinâmica, com valores vindo do back-end.

import 'dart:js';

import 'package:flutter/material.dart';
import 'package:portal_front/models/aniversariantes.dart';
import 'package:portal_front/utils/constants.dart';

class CardAniversarios extends StatelessWidget {
  CardAniversarios();

  final List<Aniversariante> list = new List();

  @override
  Widget build(BuildContext context) {
    //SizeConfig().init(context);

    return _buildColuna(context);
  }

  Widget _buildColuna(BuildContext context) {
    Size size = MediaQuery
        .of(context)
        .size;

    list.add(new Aniversariante(nome: "Raphael", aniversario: "06/09"));
    list.add(new Aniversariante(nome: "Luciana", aniversario: "05/07"));
    list.add(new Aniversariante(nome: "Raul", aniversario: "29/06"));
    list.add(new Aniversariante(nome: "Diomar", aniversario: "14/05"));
    list.add(new Aniversariante(nome: "Stephanie", aniversario: "05/04"));


    return Column(
      verticalDirection: VerticalDirection.down,
      children: <Widget>[_columnTitle(context), _columnBody(context)],
    );
  }

  Padding _columnTitle(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: Container(
        decoration: BoxDecoration(
            color: Colors.blue,
            borderRadius: BorderRadius.circular(4),
            boxShadow: [
              BoxShadow(color: Colors.grey, blurRadius: 5.0),
            ]),
        child: ClipRRect(
          borderRadius: BorderRadius.circular(4),
          child: Padding(
            padding: const EdgeInsets.fromLTRB(8, 0, 0, 0),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text(aniversariosTitle,
                    style: TextStyle(
                      fontFamily: "Titillium",
                      fontSize: 20,
                      color: Colors.white,
                    ))
              ],
            ),
          ),
        ),
      ),
    );
  }

  Padding _columnBody(context) =>
      Padding(
        padding: const EdgeInsets.all(8.0),
        child: Container(height: 265, child: _buildTable()),
      );

  _buildTable() {
    return SingleChildScrollView(
      child: DataTable(
        columns: [
          DataColumn(label: Text("")),
          DataColumn(label: Text(""))
        ],
        rows: list
            .map(
              (aniversariante) =>
              DataRow(cells: [
                DataCell(Text(aniversariante.nome)),
                DataCell(
                  Text(aniversariante.aniversario),
                ),
              ]),
        )
            .toList(),
      ),
    );
  }
}
1 resposta

Olá, tudo bem ?

Vi que sua dúvida foi aberta já tem um tempo :(

Será que conseguiu resolver ? :D

Se sim compartilha conosco como fez!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software