如何在Flutter中删除DataTable的CheckBox图标?

时间:2019-02-13 11:50:46

标签: datatable dart flutter

我正在实现DataTable来显示一些数据,为此,我正在使用PaginatedDataTable,所以我可以加载并显示数据,问题是我的{{1} }每行显示一个复选框,但我不希望这样做。

这是我当前的结果:

enter image description here

我想删除这些复选框,但我不知道该怎么做。

代码:

DataTable

4 个答案:

答案 0 :(得分:1)

更新

现在在稳定频道上可用。

如果您在主频道上而不是在稳定频道上,这是有可能的。

您只需向DataTable添加一个属性即可,showCheckboxColumn为假。

编辑后的完整代码为

@override
Widget build(BuildContext context) {
return Scaffold(
    appBar: AppBar(
        title: Text(
          "Sample",
          style: TextStyle(color: Colors.white),
        ),
    body: Column(children: <Widget>[
      DataTable(
        showCheckboxColumn: false,
        sortAscending: true,
        columns: <DataColumn>[
          DataColumn(
            label: Text('Product name'),
          ),
          DataColumn(
            label: Text('Product Quantity'),
          ),
        ],
        rows: items
            .map(
              (itemRow) => DataRow(
                onSelectChanged: (bool selected) {
                  if (selected) {
                    //'row-selected: ${itemRow.index}'
                  }
                },
                cells: [
                  DataCell(
                    Text(itemRow.itemName),
                    showEditIcon: false,
                    placeholder: false,
                  ),
                  DataCell(
                    Text(itemRow.itemQuantity),
                    showEditIcon: true,
                    placeholder: false,
                    //onTap: _getSelectedRowInfo,
                  ),
                ],
              ),
            )
            .toList(),
      )
    ]),
    bottomNavigationBar: BottomNavigationBar(
      items: const <BottomNavigationBarItem>[
        BottomNavigationBarItem(
          icon: Icon(Icons.home),
          title: Text('Home'),
        ),
      ],
      currentIndex: _selectedIndex,
      selectedItemColor: Colors.amber[800],
      onTap: _onItemTapped,
    ));
  }
}

某些Flutter开发人员不建议将其更改为master,但是如果您没有问题,则可以使用以下命令进行更改: flutter channel master flutter upgrade

答案 1 :(得分:0)

当前仅通过省略onSelectionChange: ...或通过null 代替

    onSelectChanged: (bool value) {
      print('Row selected: $value ${expense.name}');
    },

https://docs.flutter.io/flutter/material/DataRow/onSelectChanged.html

答案 2 :(得分:0)

我在selected:中删除了onSelectChanged:DataRow.byIndex()这两个,并取消了复选框。

答案 3 :(得分:0)

从DataRow中删除 onSelectChanged selected 属性,并将其添加到每个数据单元中。

DataCell(
    Text(
       employee.lastName.toUpperCase(),
    ),
    onTap: () {
      print("Tapped " + employee.firstName);
      // do whatever you want
    },
),