небольшой вопрос к тебе..
на этом изображении в моем закрывающемся виджете, когда я перетаскиваю его вправо или влево, элементы моего списка удаляются. но слова «Удалить» мне недостаточно, и я тоже хочу, чтобы рядом с моим текстом был значок корзины...
И что же мне делать ?
пожалуйста, помогите мне.
Я думаю, ненужно, но мой код:
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);
});
},
Если вы хотите, чтобы два виджета располагались рядом друг с другом по горизонтали, вы можете использовать виджет 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);
});
},
);
Вы также можете использовать виджет TextButton.icon
, который добавляет значок к TextButton
.
TextButton.icon(
icon: Icon(
Icons.delete,
color: Colors.white,
),
label: Text(
'Delete',
style: TextStyle(color: Colors.white),
),
onPressed: ...
)
омг .. я не знаю, почему я не смог найти решение .. я знал, что такое строка, но мне не пришло в голову использовать ее в этом случае .. большое спасибо