Перетащите вправо и удалите - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть виджет ListView.builder в виджете Card. Как перетащить вправо виджет ListTile и удалить этот продукт из списка? То же самое на этом изображении ...

enter image description here

1 Ответ

1 голос
/ 25 апреля 2020

Вы можете использовать Отклоняемый Виджет для достижения этого.

Следующий код может помочь вам лучше понять его.

final items = List<String>.generate(20, (i) => "Item ${i + 1}");

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Dismissable demo"),
      ),
      body: ListView.builder(
        itemCount: items.length,
        itemBuilder: (context, index) {
          final item = items[index];
          return Dismissible(
              key: Key(item),
              onDismissed: (direction) {
                setState(() {
                  items.removeAt(index);
                });
                Scaffold.of(context)
                    .showSnackBar(SnackBar(content: Text("$item dismissed")));
              },
              background: Container(
                color: Colors.red,
                child: Icon(Icons.delete),
              ),
              child: Card(
                margin: EdgeInsets.all(20),
                child: Text("$item"),
              ));
        },
      ),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...