Я пытаюсь получить текущее местоположение с помощью Location . Когда я вызываю функцию в кнопке, она запрашивает разрешение местоположения, но после включения местоположения требуется некоторое время, чтобы получить данные местоположения вместо этого после того, как я нажму кнопка, на которой должен отображаться круглый индикатор. Это то, что я сделал. Проблема в том, что круглый индикатор не отображает
Кнопка отправки
Flexible(
flex: 0,
child: Padding(
padding: EdgeInsets.symmetric(vertical: 160),
child: GestureDetector(
child: Container(
height: 60,
width: double.infinity,
color: Color.fromRGBO(34, 83, 148, 1),
child: ProgressButton(),//Progress Widget
),
onTap: () {
//getLocation function
_getLocation();
},
),
),
)
_getLocation function
Future _getLocation() async {
Location location = new Location();
LocationData _currentPosition = await location.getLocation();
setState(() {
SharedPrefrence().setLatitude(_currentPosition.latitude.toString());
SharedPrefrence().setLongitude(_currentPosition.longitude.toString());
islocateCompelete = true;
});
Future loginstatus = SharedPrefrence().getLogedIn();
Future gust_status = SharedPrefrence().getGustLogedIn();
gust_status.then((gustdata) {
loginstatus.then((data) {
if (data == true || gustdata == true) {
Navigator.pop(context, true);
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
ModalRoute.withName("/login"));
} else {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => LoginScreen(),
),
);
}
});
});
}
Виджет ProgressButton
Widget ProgressButton() {
if (islocateCompelete == true) {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.white)),
],
);
} else {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.location_searching,
color: Colors.white,
size: 20,
),
Text(
"Locate Me",
style: TextStyle(
color: Colors.white, fontSize: 15, fontWeight: FontWeight.bold),
),
],
);
}
}