Flatter DataTable -Tap на всю строку - PullRequest
0 голосов
/ 27 января 2020

Я новичок во Флаттере. Мне нужна помощь по OnTap в DataCell. Например, вместо того, чтобы коснуться одной ячейки, я хочу строку.

Вот мои коды

DataTable(
     columns: <DataColumn>[
        DataColumn(
          label: Text("Title"),
          ),
        DataColumn(
          label: Text("Contacts"),
          ),
         )
        ],
         rows: contracts.map((contract) => DataRow(
             cells: [
               DataCell(Text(contract.title),
                  onTap: () {
                      Navigator.push(context, MaterialPageRoute(
                              builder: (context) => List(),),
                           );
                         }),
               DataCell(Text(contract.contacts),
                  onTap: () {
                      Navigator.push(context, MaterialPageRoute(
                              builder: (context) => List(),),
                           );
                         }),).toList()

Я хочу щелкнуть указанную строку c, и она будет перенаправлена ​​на другую страницу, также будет отправлено значение индекса.

Ответы [ 2 ]

0 голосов
/ 27 января 2020

В DataRow есть свойство, которое вы можете реализовать с именем onSelectChanged , где вы можете поместить свою функцию внутрь.

bool isSelected = false;

DataRow(
 selected: isSelected,
 onSelectChanged: (x) {
  setState(() {
   isSelected = x;
  });
 },
 cells: <DataCell>[
  DataCell(
   Text('Row1'),
  ),
 ],
),
0 голосов
/ 27 января 2020

К делает весь виджет переставляемым

просто оберните ваш виджет с помощью InkWell() или GestureDetector Виджет

InkWell() виджет добавит кликабельный вид тени эффекта при нажатии на виджет

, тогда как GestureDetector() виджет не будет

В вашем случае вместо переноса DataCell просто оберните DataRow виджет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...