Как добавить значок в Dismissible во флаттере?

небольшой вопрос к тебе..

на этом изображении в моем закрывающемся виджете, когда я перетаскиваю его вправо или влево, элементы моего списка удаляются. но слова «Удалить» мне недостаточно, и я тоже хочу, чтобы рядом с моим текстом был значок корзины...

И что же мне делать ?

пожалуйста, помогите мне.

Я думаю, ненужно, но мой код:

return Dismissible(
                      key: UniqueKey(),
                      background: Container(
                        alignment: Alignment.center,
                        color: Colors.redAccent,
                        child: const Text(
                          'Delete',
                          style: TextStyle(
                            color: Colors.white,
                          ),
                          textAlign: TextAlign.center,
                        ),
                      ),
                      onDismissed: (direction) async {
                        await deletePost(listpost![index].id.toString());
                        setState(() {
                          listpost!.removeAt(index);
                          fetchAllPosts().then((value) => listpost = value);
                        });
                      },
0
0
77
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы хотите, чтобы два виджета располагались рядом друг с другом по горизонтали, вы можете использовать виджет Row — он принимает несколько дочерних элементов:

return Dismissible(
  key: UniqueKey(),
  background: Container(
    alignment: Alignment.center,
    color: Colors.redAccent,
    child: Row( // Wrap with a row here
      mainAxisAlignment: MainAxisAlignment.center,
      children: const [
        Icon(
          Icons.delete,
          color: Colors.white,
        ),
       
        Text(
          'Delete',
          style: TextStyle(
            color: Colors.white,
          ),
        ),
      ],
    ),
  ),
  onDismissed: (direction) async {
    await deletePost(listpost![index].id.toString());
    setState(() {
      listpost!.removeAt(index);
      fetchAllPosts().then((value) => listpost = value);
    });
  },
);

омг .. я не знаю, почему я не смог найти решение .. я знал, что такое строка, но мне не пришло в голову использовать ее в этом случае .. большое спасибо

Hana.HD 01.07.2024 18:17

Вы также можете использовать виджет TextButton.icon, который добавляет значок к TextButton.

TextButton.icon(
  icon: Icon(
    Icons.delete,
    color: Colors.white,
  ),
  label: Text(
    'Delete',
    style: TextStyle(color: Colors.white),
  ),
  onPressed: ...
)

Другие вопросы по теме