Я сам не проверял это, поэтому попробуйте и посмотрите, подходит ли оно вам.
Для такого применения вы можете попробовать provider
.
Например,
final provider = Provider.of<myProvider>(context);
...
Image(
image: AssetImage(provider.imageFile),
),
...
GestureDetector(
onTapDown: () => provider.imageForTapDown(),
onTapUp: () => provider.imageForTapUp()
);
, затем в provider
,
void imageForTapDown(){
//Change the image file
imageFile = changeImageforTapDown;
notifyListeners();
)
void imageForTapUp(){
//Change the image file
imageFile = changeImageforTapUp;
notifyListeners();
)
Подробнее о провайдере .
Убедитесь, что вы применили оптимизацию, так как notifyListeners
будет перестраиваться всякий раз, когда listen: true
в провайдере (вы можете указать целевой c образ, используя selector
провайдера).
Надеюсь, это поможет.