#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:
Вы можете использовать DraggableScrollableSheet
Документ и видеоурок доступны здесь: https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html