Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用颤振图时如何在打开时运行函数_Flutter_Gesturedetector_Fluttermap - Fatal编程技术网

Flutter 使用颤振图时如何在打开时运行函数

Flutter 使用颤振图时如何在打开时运行函数,flutter,gesturedetector,fluttermap,Flutter,Gesturedetector,Fluttermap,当用户在滚动地图后将手指从屏幕上移开时,我尝试运行该函数。 map选项只提供onPositionChanged,我需要的是onPanEnd 所以我试着设置一个手势检测器,但效果不好 有一个问题的解决方案,看起来就像我的,除了我不使用谷歌地图,我使用传单颤振地图 导入“包装:颤振/材料.省道”; 导入“包:颤振图/颤振图.dart”; 导入“包:latlong/latlong.dart”; void main()=>runApp(MyApp()); 类MyApp扩展了无状态小部件{ //此小部件

当用户在滚动地图后将手指从屏幕上移开时,我尝试运行该函数。 map选项只提供onPositionChanged,我需要的是onPanEnd 所以我试着设置一个手势检测器,但效果不好

有一个问题的解决方案,看起来就像我的,除了我不使用谷歌地图,我使用传单颤振地图

导入“包装:颤振/材料.省道”;
导入“包:颤振图/颤振图.dart”;
导入“包:latlong/latlong.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
//此小部件是应用程序的根。
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:主页(),
);
}
}
类主页扩展了StatefulWidget{
@凌驾
_HomePageState createState()=>\u HomePageState();
}
类_HomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
最终高度=MediaQuery.of(context).size.height;
最终宽度=MediaQuery.of(context).size.width;
返回脚手架(
主体:容器(
高度:高度,,
宽度:宽度,
儿童:手势检测器(
//位置更改完成后,尝试运行该功能
onPanEnd:()=>打印('onPanEnd'),
//点击下一步运行
onTapDown:()=>打印('onTapDown'),
孩子:地图(
选项:地图选项(
//位置改变时运行功能
onPositionChanged:(p,t)=>print('Position:${p.bounds.north},Change:$t'),
中心:拉特林(41.1558,27.8037),
缩放:7,
),
图层:[
TileLayerOptions(
URL模板:
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
子域:['a','b','c'],
),
MarkerLayerProptions(
标记:[
标记(
宽度:20.0,
身高:20.0,
点:LatLng(41.1558,27.8037),
生成器:(ctx)=>图标(图标。位置(打开)),
],
),
],
),
),
),
);
}
}
    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)),
                    ],
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }