Трепещущий нижний контейнер проведите пальцем вверх

#flutter #maps #google-places-api

#трепетание #Карты #google-places-api

Вопрос:

Я создаю приложение, которое показывает детали места при нажатии на место на Картах Google. Я могу открыть контейнер внизу страницы, но я хочу сделать это, когда пользователь проведет пальцем по этому контейнеру вверх с анимацией, контейнер будет охватывать всю страницу, и я получу дополнительную информацию об этом месте и покажу пользователю. Как я могу это сделать с помощью Flutter?

Нижний контейнер

Ответ №1:

Вы можете попробовать использовать пакет здесь:

https://pub.dev/packages/sliding_up_panel

Однако, если это не заполняет желаемое, попробуйте вместо этого: оберните виджет с помощью GestureDetector и AnimatedController:

 double containerHeight = 0;
GestureDetector(
  onVerticalDragEnd: (dragUpdateDetails) {
    setState(){
       containerHeight = //device height or use MediaQuery.of(context).size.height//
    }
  },
  child: AnimatedContainer(
         duration: Duration(milliseconds: //how long should it take//), 
         height: containerHeight,
         child: //whatever you want//
   )
),
  

AnimatedController автоматически анимирует между изменениями свойств. Тем не менее, вы можете попробовать изменить onVertivalDragEnd на что-то другое, например onVerticalDragUpdate, чтобы полностью выполнить ваше желание. Если вы хотите, чтобы такое поведение отображалось на весь экран, оберните свой первый виджет возврата с помощью GestureDetector.

Ответ №2:

Я думаю DragableScrollableSheet , это соответствует вашим потребностям. В документации есть хорошее объяснение.

Ответ №3: