这里是菜鸟。我一直在使用地理定位器插件在 youtube 上关注一些编码教程,目标是跟踪和流式传输移动设备的当前位置。我无法让它工作,因为最近的版本更改不适用于它在视频上的编码方式。除了我对 Flutter 中流的非常浅薄的理解。
从我的 geolocator_service.dart 类/文件中,我想调用它并将其附加到我的 map.dart 屏幕文件中。但是在构建小部件时,我陷入了 StreamBuilder 的 builder 参数:
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:maglako/services/geolocator_service.dart';
import 'package:provider/provider.dart';
class Map extends StatefulWidget {
@override
_MapState createState() => _MapState();
}
class _MapState extends State<Map> {
final GeolocatorService geolocatorService = GeolocatorService();
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder <Position> (
stream: geolocatorService.getCurrentLocation(),
builder: (context, snapshot) // <---- this is where the error is located
) ,
),
);
}
}
我的 geolocator_service.dart 文件(geolocator 7.1.0 插件)
import 'dart:async';
import 'package:geolocator/geolocator.dart';
class GeolocatorService {
final Geolocator geo = Geolocator();
Stream<Position> getCurrentLocation() {
return Geolocator.getPositionStream(desiredAccuracy: LocationAccuracy.high,distanceFilter: 10);
}
如果您能向我指出有关该主题的好教程,我们也将不胜感激。谢谢!
答案 0 :(得分:0)
改成这个,构建器需要一个小部件,在这个小部件中你可以绘制你需要显示给用户的东西,比如 lat 和 lang 作为文本或自定义小部件,快照会显示你需要的数据>
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder <Position> (
stream: geolocatorService.getCurrentLocation(),
builder: (context, snapshot){
// Updated
return Text('Data updated');
}
) ,
),
);
}