在 Flutter 中删除 ToDo 小部件

Posted

技术标签:

【中文标题】在 Flutter 中删除 ToDo 小部件【英文标题】:Delete ToDo Widgets in Flutter 【发布时间】:2021-06-18 17:28:22 【问题描述】:

我想删除 Flutter 中的 ToDo Widget。我将小部件存储在一个列表中,并在函数_getItems() 中返回该列表。

 List<Widget> _getItems() 

final List<Widget> _todoWidgets = <Widget>[];

for (String title in eintrage) 
  _todoWidgets.add(_buildTodoItem(title));


return _todoWidgets;

这是我构建 ToDO Widget 的函数:

Widget _buildTodoItem(String title) 
return ListTile(
    leading: Theme(
      data: ThemeData(unselectedWidgetColor: Colors.white),
      child: Checkbox(
        value: isChecked,
        onChanged: (bool? value) 
          setState(() 
            isChecked = value!;
          );
        ,
      ),
    ),
    title: Text(
        title, style: TextStyle(fontSize: 32.0, color: Colors.white)),
    trailing: FlatButton(
      onPressed: () 
        setState(() 

        );
      ,
      child: Text(
          'delete', style: TextStyle(fontSize: 20, color: Colors.white)),
    ),
  );

在正文中,我使用了一个创建所有 ToDo 项的 ListView:

body: ListView(
    children: _getItems(),
  ),

当我按下标题为“delete”的FlatButton时,如何删除一个ToDo Widget?

【问题讨论】:

【参考方案1】:

你可以在 FlatButton 中这样做:

onPressed: () 
          setState(() 
            eintrage.remove(title);
          );
        ,

【讨论】:

以上是关于在 Flutter 中删除 ToDo 小部件的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中从树中临时移除时保留小部件状态

Flutter:在 Navigation.pop 上刷新父小部件

如何在 Flutter 的同一屏幕上沿 ListView 显示小部件?

Flutter - 从谷歌地图小部件中删除标记

颤振 |从 Switch 小部件中删除多余的空间

Flutter - 在 Firebase 中存储小部件?