Метчик с ручкой в Flutter TableRow
Мне нужно сделать TableRow интерактивным и перейти на другой экран, но я не могу обернуть TableRow с помощью GestureDetector или Inkwell. Как сделать 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,
),
]),
3 ответа
Я не думаю, что ты сможешь это сделать,
Вы можете использовать DataTable вместо виджета " Таблица", он определенно удовлетворит ваши потребности.
В DataRow есть свойство onSelectChanged, это именно то, что вам нужно.
Не для всей строки, а для отдельных ячеек в строке вы можете использовать TableRowInkWell. TableRowInkWell входит внутрь самого TableRow, обертывая дочерний элемент. Вот ответ, отданный SoloWofl93: Как использовать TableRowInkWell внутри таблицы во флаттере?
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')
]),
]),
],
)
Сделать это кажется невозможным.
Вы можете попробовать добавить чернильницу в строку таблицы точно такого же размера поверх исходной таблицы, используя виджет стека.