Воссоздание вашего первого приложения Flutter, часть 2, но без создания отдельного виджета _buildRow - PullRequest
0 голосов
/ 01 апреля 2020
body: Container(
            child: FutureBuilder(
                future: _getCandidates(),
                builder: (BuildContext context, AsyncSnapshot snapshot) {
                  if (snapshot.data == null) {
                    return Container(
                      child: Center(
                        child: Text("Loading..."),
                      ),
                    );
                  } else {
                    return ListView.builder(
                        itemCount: snapshot.data.length,
                        itemBuilder: (BuildContext context, int index) {
                          final bool alreadySaved = _saved.contains(snapshot.data[index]);
                          return ListTile(
                            title: Text(snapshot.data[index].name,
                                style: TextStyle(
                                  fontSize: 20.0,
                                  fontWeight: FontWeight.bold,
                                )),
                            subtitle: Text(snapshot.data[index].province +
                                ' | ' +
                                snapshot.data[index].district +
                                ' | ' +
                                snapshot.data[index].party),
                            trailing: Icon(
                              alreadySaved
                                  ? Icons.favorite
                                  : Icons.favorite_border,
                              color: alreadySaved ? Colors.red : null,
                            ),
                            onTap: () {
                              setState(() {
                                if (alreadySaved) {
                                  _saved.remove(snapshot.data[index]);
                                } else {
                                  _saved.add(snapshot.data[index]);
                                }
                              });
                            },
                          );
                        });
                  }
                }))

Я пытаюсь воссоздать «Ваше первое приложение флаттера, часть 2», не создавая отдельный виджет _buildRow и не используя собственный файл json. Приведенный выше код устанавливает состояние значка сердца красным на кране, но сразу отменяет действие, изменяя значок сердца на значение по умолчанию.

...