Вы можете сделать это с помощью виджета AnimatedPositioned ().
Вот документы
Все, что вам нужно, это создать список состояний карты (открыт, закрыт ), и если карта нажата, измените состояние.
В зависимости от состояния карты измените положение в виджете AnimatedPositioned (). Кроме того, это можно сделать с помощью AnimatedContainer () вместо AnimatedPositioned ()
Ссылка на AnimatedContainer () docs