Как автоматически изменить размер и разместить таблицу в карточке во флаттере - PullRequest
0 голосов
/ 17 марта 2019

1: Как я могу автоматически изменить размер Таблица и вписаться в Карту во флаттере?

строки таблицы не помещаются в карту , как показано наimage.

Я пробовал FittedBox с Boxfit.scaleDown, но он отображает пустую карточку.

2: как создать равное поле 4 * 8 в таблице во флаттере?

class MagicCard extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final double screenHeight = MediaQuery.of(context).size.height;
    double cardHeight = screenHeight * 0.60;
    double cardWidth = screenHeight * 0.30;
    return Container(
      width: cardWidth,
      height: cardHeight,
      child: Card(
        color: Colors.amber,
        child: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Table(
            children: _buildCardTable(),
          ),
        ),
      ),
    );
  }

  List<TableRow> _buildCardTable() {
    List<int> list = cards[5].getNumbers;
    List<TableRow> tableRows = <TableRow>[];
    partition(list, 4).forEach((numList) {
      TableRow tableRow = _buildRow(List<int>.from(numList));
      tableRows.add(tableRow);
    });
    return tableRows;
  }

  TableRow _buildRow(List<int> numbers) {
    return TableRow(
        children: numbers.map<Widget>((num) => DigitButton(num)).toList());
  }
}



/// Number
class DigitButton extends StatelessWidget {
  DigitButton(this.num);
  final int num;

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: RawMaterialButton(
        shape: CircleBorder(),
        elevation: 6,
        padding: const EdgeInsets.all(8.0),
        fillColor: Colors.white,
        child: Text(num.toString(),),
      ),
    );
  }
}
...