【发布时间】:2020-06-26 14:17:11
【问题描述】:
我正在尝试在 Flutter 中使用 Location 包,但是当我尝试在我的应用程序中显示纬度和经度时,我收到一条错误消息,指出“在 null 上调用了 getter 'latitude'。”我的设备上的定位服务可能有问题吗?当我点击屏幕“为了获得更好的体验,打开设备位置,它使用谷歌的定位服务”时,我也会弹出一个提示,但我已经在应用程序中启用了定位服务的权限。下面是我的代码
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:provider/provider.dart';
import 'package:wasteagram/data/firestore_service.dart';
import 'package:location/location.dart';
import 'dart:async';
import 'package:wasteagram/model/user_location.dart';
class DetailPage extends StatefulWidget {
final DocumentSnapshot post;
DetailPage({this.post});
@override
_DetailPageState createState() => _DetailPageState();
}
class _DetailPageState extends State<DetailPage> {
LocationData locationData;
@override
void initState() {
super.initState();
retrieveLocation();
}
void retrieveLocation() async {
var locationService = Location();
locationData = await locationService.getLocation();
setState(() {
});
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.post.data["wastedate"])
),
body: Center(
child: Container(
child: Column(
children: <Widget> [
Image.network(widget.post.data["image"]),
Text(widget.post.data["wastedate"]),
Text(widget.post.data["wastenumber"]),
Text('Latitude: ${locationData.latitude}'),
Text('Longitude: ${locationData.longitude}')
]
)
)
),
);
}
}
【问题讨论】: