Flutter - Table / TableCell:如何设置一个单元格的背景颜色

Mik*_*e N 1 flutter flutter-layout

我有一个表格小部件,我必须调整一个单元格的背景颜色。所以我在Container小部件中放了一个小TableCell部件并设置它的颜色。如果该行的所有单元格具有相同的高度 (b1),则此方法工作正常。但是,如果另一个单元格的高度更大 (b2),我的方法就会失败,正如您在此图像中看到的那样。

在此处输入图片说明

我知道它的高度Container与其孩子的高度相匹配,而不是其父母的高度。但我想不出更好的方法。有任何想法吗?

这是我用于表的代码:

Table(
    border: TableBorder.symmetric(
        inside: BorderSide(width: 1, color: AppColors.grey600),
        outside: BorderSide.none
    ),
    children: [
        TableRow(
            children: [
                TableCell(child: Container(child: Text('a'))),
                TableCell(child: Container(child: Text('b'))),
                TableCell(child: Container(child: Text('c'))),
            ],
        ),
        TableRow(
            children: [
                TableCell(child: Container(child: Text('abc abc abc'))),
                TableCell(child: Container(color: Colors.grey[300], child: Text('b'))),
                TableCell(child: Container(child: Text('c'))),
            ],
        ),
        TableRow(
            children: [
                TableCell(child: Container(child: Text('a'))),
                TableCell(child: Container(child: Text('b'))),
                TableCell(child: Container(child: Text('c'))),
            ],
        )
    ]
)
Run Code Online (Sandbox Code Playgroud)

Har*_*nto 5

使用垂直对齐:TableCellVerticalAlignment.fill

TableCell(
  verticalAlignment: TableCellVerticalAlignment.fill, 
  child: Container(
    color: Colors.grey[300], 
    child: Text('b')
  )
),
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚意识到 TableCellVerticalAlignment.fill 仅适用于单个单元格。如果将其应用于一行中的所有单元格,则该行的高度将设置为 0,不幸的是,这是一种非常不受欢迎的行为。 (3认同)