Как запустить функцию при onPanEnd при использовании flutter_map
Я пытаюсь запустить функцию, когда пользователь убирает палец с экрана после прокрутки карты. опция карты дает мне только onPositionChanged, а мне нужно onPanEnd, поэтому я попытался установить GestureDetector, но он не работает
есть решение проблемы, которое выглядит так же, как у меня, за исключением того, что я не использую карту Google. Я использую карту флаттера с листовкой. Карта Google во Flutter не отвечает на события касания.
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
final height = MediaQuery.of(context).size.height;
final width = MediaQuery.of(context).size.width;
return Scaffold(
body: Container(
height: height,
width: width,
child: GestureDetector(
//Try to run function when position change is done
onPanEnd: (_) => print('onPanEnd'),
//Run on click Down
onTapDown: (_) => print('onTapDown'),
child: FlutterMap(
options: MapOptions(
//Run function when position change
onPositionChanged: (p,t)=>print('Position : ${p.bounds.north}, Change : $t'),
center: LatLng(41.1558, 27.8037),
zoom: 7,
),
layers: [
TileLayerOptions(
urlTemplate:
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
subdomains: ['a', 'b', 'c'],
),
MarkerLayerOptions(
markers: [
Marker(
width: 20.0,
height: 20.0,
point: LatLng(41.1558, 27.8037),
builder: (ctx) => Icon(Icons.location_on)),
],
),
],
),
),
),
);
}
}