onLongPress PaginatedDataTable DataRow

Каков наилучший способ, чтобы вся строка вызывала обратный вызов при длительном нажатии в любом месте в ней. Я используюPaginatedDataTable, который содержит DataRowиз DataCellс.

Единственный способ, который я нашел, - это добавить TableRowInkWell или GestureDetector внутри каждого DataCell но это не работает, вам нужно долго нажимать на текст внутри любой из ячеек, чтобы работать.

Ive также попытался добавить отступы, чтобы увеличить область выбора, но это испортило сам datatable.

      dataCells.add(DataCell(
        TableRowInkWell(
          onLongPress: () {
            // do something
          },
          onTap: () {
            // do something
          },
          child: ConstrainedBox(
            constraints: BoxConstraints(maxWidth: 150),
            child: Text(
              content,
              overflow: TextOverflow.fade,
              maxLines: 1,
              softWrap: false,
            ),
          ),
        ),
      ));

Также DataRow.byIndex не имеет никаких обратных вызовов, кроме onSelectChanged который работает для onTap.

   return DataRow.byIndex(
        onSelectChanged: (bool value) {
          // do something
        },
        index: index,
        cells: dataCells
    );

0 ответов

Другие вопросы по тегам