У меня есть PopupMenuButton
, который отображает некоторые PopupMenuItem<String>
, сгенерированные из List<String>
. Каждый элемент имеет кнопку удаления, которая удаляет String
из списка. Проблема в том, что всплывающее меню не восстанавливается после удаления элемента, пока оно не закроется и не откроется снова.
Кажется, что независимо от того, что я делаю, даже используя GlobalKey
и вызывая key.currentState.setState()
, это не заставляет всплывающее меню перестраиваться, пока оно не закроется и не откроется снова.
GlobalKey _favoritesKey = new GlobalKey();
PopupMenuButton<String>(
key: _favoritesKey,
icon: Icon(Icons.bookmark_border),
itemBuilder: (context){
List<PopupMenuItem<String>> result = [];
model.favorites.forEach((x){
result.add(PopupMenuItem<String>(value: x, child: Row(
children: [
IconButton(icon: Icon(Icons.delete_outline), onPressed: (){
model.removeFavorite(x);
_favoritesKey.currentState?.setState((){});
setState(() {});
}),
Text(x)
]
)));
});
return result;
},
onSelected: (x){
// Do something with the selected value
},
)
Как сделать так, чтобы всплывающее меню перестраивалось при его открытии?