如何在 Flutter 的 DataTable 中监听 DataRow 的点击

Posted

技术标签:

【中文标题】如何在 Flutter 的 DataTable 中监听 DataRow 的点击【英文标题】:How to listen for tap on DataRow inside DataTable in Flutter 【发布时间】:2019-03-31 11:12:34 【问题描述】:

我能够设置一个 DataTable 来显示一堆数据。但是想要在点击一行时导航到另一个屏幕。

很遗憾,DataRow 没有 onTap 回调。

我最终为每个 DataCell 添加了 onTap,这看起来像是一个 hacky 解决方案。有没有其他方法可以解决这个问题?

【问题讨论】:

用docs.flutter.io/flutter/widgets/GestureDetector-class.html包装它 不能将其包装为 DataTable 属性“行”需要 DataRow s 或小部件的数组 我明白了。我想您需要包装整个表格,然后找出该位置下方的哪一行。可能值得提出功能请求。 这个问题有什么解决办法吗?正如我所面临的一样 【参考方案1】:

DataRow 中的 onTap 调用是 onSelectChanged 函数

DataRow(
    cells: [
       DataCell(Text("ID"))
      ,DataCell(Text("NAME"))
    ],
    onSelectChanged: (value) 
     // insert your navigation function here and use the selected value returned by the function
      Navigator.of(context).pop(value);
    
);

【讨论】:

以上是关于如何在 Flutter 的 DataTable 中监听 DataRow 的点击的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter/Dart 中使用 Hive 框和索引以简单的方式将数据动态加载到 DataTable?

如何在 Flutter 中对 DataTable 小部件上的 Future<List> 数据类型进行排序?

使用 Firestore 和 Flutter 填充 DataTable(使用 StreamBuilder)

Flutter:有啥办法可以改变DataTable的行线颜色?

Flutter:使用来自 Firestore 的多集合流创建动态更新的 DataTable

Flutter DataTable - 点击行