2

我在我的页面中创建了 listview.builder。我设计了我的卡片。现在我想通过单击浮动操作按钮中的 onpressed 方法在 Listveiw.buider 中一一生成卡片。我应该在那个 onpressed 中写哪个方法/函数?以及如何在其中生成卡片以及我应该在 itemCount 和 itemBuilder 中更改什么。我需要那个路线图。谢谢。

ListView.builder(
      itemCount: 5,
    itemBuilder: (context, index) {
      return Dismissible(
        key:Key(null),
        direction: DismissDirection.startToEnd,
        onDismissed: (direction) {},
        confirmDismiss: (direction) {
          return showDialog(
              context: context, builder: (_) => DeleteCard());
        },
        background: Container(
          color: Colors.red,
          padding: EdgeInsets.only(left: 16),
          child: Icon(
            Icons.delete,
            color: Colors.white,
          ),
          alignment: Alignment.centerLeft,
        ),
        child: Card(
          shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(12.0)),
          color: Colors.white70,
          child: Column(
            children: <Widget>[
              Row(
                children: <Widget>[
                  Container(
                    width: 120,
                    padding: EdgeInsets.all(10.0),
                    child: Text(
                      "Project ",
                      style: TextStyle(
                          fontSize: 11, fontWeight: FontWeight.bold),
                    ),
                  ),
                  Container(
                    padding: EdgeInsets.all(10.0),
                    child: ProjectName(),
                  ),
                ],
              ),

              // item add start

              Container(
                padding: EdgeInsets.all(10.0),
                child: TextFormField(
                  decoration: InputDecoration(
                    hintText: "Item name" ,hintStyle: TextStyle(fontSize: 12),
                  ),
                ),
              ),
              Container(
                padding: EdgeInsets.all(10.0),
                child: TextFormField(
                  decoration: InputDecoration(
                    hintText: "Amount",hintStyle: TextStyle(fontSize: 12),

                  ),
                  keyboardType: TextInputType.number,
                ),
              ),
            ],
          ),
        ),
      );
    }
  ),
4

2 回答 2

1

我认为这是您正在寻找的东西。只需ListTile用您自己的替换Card

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  var listLength = 1;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Flutter App :)"),
      ),
      floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add),
          onPressed: () {
            setState(() {
              listLength++;
            });
          }),
      body: Container(
          child: ListView.builder(
              itemCount: listLength,
              itemBuilder: (context, index) {
                return ListTile(
                  leading: Text("$index"),
                  title: Text("List Tile as Widget"),
                );
              })),
    );
  }
}

于 2020-10-25T12:05:07.093 回答
0

我已经通过使用一个初始值为 0 的 var 来解决它,然后在设置状态下创建一个函数并增加变量。然后我在浮动操作按钮中调用了该函数,并在 listview.builder 项目计数中设置了 var 名称。我希望它可以帮助其他人这是一个使用 onpressed 生成卡片的简单解决方案。

于 2020-10-25T12:05:51.847 回答