我是扑朔迷离的,并且正在开发一个应用程序,该应用程序在Scaffold中的浮动动作按钮中显示车速。但我希望它根据速度自动更改,这样就不必每次都手动刷新/重新启动。
这是我的代码。
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
double speedInmps;
double speedInKph;
var geolocator = Geolocator();
var locationOptions = LocationOptions(accuracy: Locationaccuracy.high,distanceFilter: 10);
Future<void> getVehicleSpeed()async{
try{
geolocator.getPositionStream((locationOptions)).listen((position) async
{
speedInmps = await position.speed;
speedInKph = speedInmps * 1.609344;
print(speedInKph.round());
});
}catch(e){
print(e);
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold( floatingactionButton: FloatingactionButton(
onpressed: () {getVehicleSpeed();
},child: Text(speedInKph.round().toString() +'Km/h'),//Need Improvments
Here
backgroundColor: Colors.green,),appBar: AppBar(
title: Text('speed'),centerTitle: true,body: Center(
child: flatButton(
onpressed: getVehicleSpeed,child: Text(
speedInKph.toString(),style: TextStyle(fontSize: 16.0),color: Color(0xffdd4b39),textColor: Colors.white,padding: const EdgeInsets.all(20.0),)
);
}
}
我必须热装/重启才能获得更新的速度,但是我希望它自动刷新速度。