当前位置: 首页 > 知识库问答 >
问题:

出现移除列表视图的问题

勾通
2023-03-14

我试图实现一个swipe来删除列表视图作为列的子列,这样我就可以在它下面添加一行按钮,但当它呈现时,屏幕上没有出现任何东西,我也没有得到任何错误。

final goals = List<String>.generate(20,(i) => 'item ${i+1}');

class AddButton extends StatelessWidget {
  final formKey = GlobalKey<FormState>(); 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: Column(children: <Widget>[
          ListView.builder(
            itemBuilder: (context,int index){
              return new Dismissible(
                key: new Key(goals[1]),
                onDismissed: (direction){
                  goals.removeAt(index);
                  Scaffold.of(context).showSnackBar(SnackBar(
                    content: new Text("Item Removed")
                  ));
                },
                child: new ListTile(
                  title: new Text("${goals[index]}"),
                )
              );
            },
            itemCount: goals.length,
          )
          ],
        ),
      ),
    );
  }
}

共有1个答案

富锦
2023-03-14

我创建了一个变量来引用正在构建的当前目标。然后,我从该项创建了一个键,并在ondesced函数中添加了所需的setstate方法。此示例要求使用StateFulWidget,而不是StateLessWidget

注意:从Dart2.0开始,new关键字是可选的。

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: Column(children: <Widget>[
          ListView.builder(
            itemBuilder: (context,int index){
              var item = goals[index];
              return Dismissible(
                key: Key(item),
                onDismissed: (direction){
                  setState(() {
                    goals.removeAt(index);
                  });

                  Scaffold.of(context).showSnackBar(SnackBar(
                    content: new Text("Item Removed")
                  ));
                },
                child: ListTile(title: Text("$item"))
              );
            },
            itemCount: goals.length,
          )],
        ),
      ),
    );
  }
 类似资料:
  • "'公共类HomeFraank扩展了片段{ } ''' 碎片_home已创建但未被识别。

  • 我有一个如下定义的表视图 当用户单击时,我使用单击的项目详细信息重新加载表。在我重新加载之前,我对表项调用清除 现在,当我单击另一个项目并尝试重新加载表格时,它看起来像下面这样。这是非常奇怪的,因为应该只有一行,但行的大小是一样的,就像从以前的点击,其余的行是空的,除了图标。当我点击图标时,没有任何反应。任何人以前都面临过这种情况。有人知道这是什么原因吗? 我的工具定义如下。它们只是2 的

  • 我在删除订单时遇到问题: 这里是按取消删除订单的表单: 这是我的路由器: > OrderController:删除函数: 公共函数delete(Order$Order){try{unlink(public_path().'/storage/orders/files/'.$Order- 因此,当点击按钮(取消)时,只需转到正确的url:when 21是订单id 而且它只是找不到页面!!!没有删除任何

  • 我的视图中有六个UITextFields,我想决定视图是否必须移动。在移动视图之前,如何检查选择了哪个文本字段? 这是我显示键盘和移动视图的代码:

  • ListView控件用于显示项列表。 与TreeView控件一起,它允许您创建类似Windows资源管理器的界面。 让我们从工具箱中单击ListView控件并将其放在表单上。 ListView控件显示项目列表以及图标。 ListView控件的Item属性允许您添加和删除项目。 SelectedItem属性包含所选项的集合。 MultiSelect属性允许您在列表视图中设置选择多个项目。 Check

  • 我有以下视图树: 堆栈视图< br> -轴:垂直< br> -对齐:填充< br> -分布:填充< br> -间距:0 -约束:< br> - -尾随空格到:超级视图< br> - -前导空格到:超级视图< br> - -顶部空格到:超级视图< br> - -子视图:< br> - - ui VIEW(name:VIEW _ ONE)< br > --约束:< br > --高度:60 - - -