Удалить элемент из PopupMenuButton, пока он открыт
У меня есть 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
},
)
Как я могу заставить всплывающее меню восстанавливать само себя, пока оно открыто?