我正在使用Flutter widget:HorizontalPicker
这里有一个非常简单的代码:
HorizontalPicker(
initialValue: Recipe.recipe.portionWeight.toInt(),
height: 70,
minValue: 0,
maxValue: Recipe.recipe.recipeWeight,
divisions: Recipe.recipe.recipeWeight.toInt(),
suffix: " g",
showCursor: false,
backgroundColor: Colors.grey.shade900,
activeItemTextColor: Colors.white,
passiveItemsTextColor: Colors.amber,
onChanged: (value) {
setState(() {
Recipe.recipe.portionWeight = value;
Recipe.calculatePortionGrams();
Speedometers.elaborateKcalNeedlePointer(value);
Recipe.updateRecipe();
});
},
),
不幸的是,这个小部件没有控制器。我的用户应该实时更改MAX值,但是一旦绘制到屏幕上,即使我以编程方式更改SetState上的MAX值,小部件也不会自行刷新。如果我改变页面或隐藏小部件本身,一旦返回值被刷新。
有解决方法吗?例如,如何将其隐藏一秒钟并再次显示?或者如何强制重绘小部件?
1条答案
按热度按时间kognpnkq1#
找到了解决方案:如何强制Flutter重建/重绘所有窗口小部件?
在包含HorizontalPicker的顶级小部件上使用了Key。要关注的用户是:肖恩布莱斯
这不是一个与我的问题直接相关的解决方案,这将解决任何其他小部件的任何其他问题。
这里的解决方案从那里复制: