1

我需要使 TableRow 可点击并导航到其他屏幕,但我无法使用 GestureDetector 或 Inkwell 包装 TableRow。如何使 TableRow 可点击。我已经实现如下:

for (int i = 0; i < menuList.length; i++)
              TableRow(children: [
                SizedBox(
                  width: 5,
                ),
                Text((i + 1).toString()),
                Text(menuList[i].name),
                Text(menuList[i].price.toString()),
                Text(menuList[i].maxQty.toString()),
                menuList[i].status == 0
                    ? Text(
                        menuList[i].foodStatus,
                        style: TextStyle(color: Colors.red),
                      )
                    : YourListViewItem(
                        id: menuList[i].id,
                        index: menuList[i].status,
                      ),
              ]),
4

3 回答 3

2

我不认为你可以做到这一点,

您可以使用DataTable代替Table小部件,它一定会满足您的需求。

DataRow中有一个名为onSelectChanged的​​属性,这正是您想要的。

于 2020-08-04T14:32:06.043 回答
2

不是整行,而是一行中的单个单元格,您可以使用 TableRowInkWell。TableRowInkWell 进入 TableRow 本身,包裹一个孩子。这是答案,归功于 SoloWofl93:如何在 Flutter 中使用 TableRowInkWell inside Table?

Table(
  border: TableBorder.all(),
  children: [
    TableRow(children: [
     
      // HERE IT IS...
      TableRowInkWell(
        onTap: (){},
        child: Column(children: [
          Icon(
            Icons.account_box,
            size: iconSize,
          ),
          Text('My Account'),
        ]),
      ),
     
      Column(children: [
        Icon(
          Icons.settings,
          size: iconSize,
        ),
        Text('Settings')
      ]),
    ]),
  ],
)
于 2021-01-17T18:52:30.317 回答
-2

似乎不可能做到这一点。

您可以尝试的一件事是使用堆栈小部件将墨水池添加到原始表格顶部大小完全相同的表格行。

于 2022-02-21T04:15:55.443 回答