当应用尝试在Flutter中获取用户位置时如何添加CircularProgressIndicator

问题描述 投票:1回答:1

我构建了一个尝试检测用户位置的应用,当检测到用户位置后,他们将重定向以发布内容(_isMockLocation=false时...)_isMockLocation=false时,我在内部应用了Future builder和CircularProgressIndicator,但如何应用它当应用尝试获取用户位置时...这是我的代码

_getCurrentLocation() async {
TrustLocation.start(5);
      Geolocator()
          .getCurrentPosition(desiredAccuracy: LocationAccuracy.best) // my app stucks here.. I want to add CircularProgressIndicator here
          .then((Position position) {
        TrustLocation.onChange.listen((values) {
          setState(() {
            _isMockLocation = values.isMockLocation;
            _currentPosition = position;
          });
        });
         if (_isMockLocation) { show alert }
         else {**do something**} // when **do something**.. I have applied FutureBuilder here and applied it in Widget defaultClockOut()
     })
    }

GestureDetector(
              onTap: failOut
                  ? () {
                      print(failOut);
                      setState(() {
                        out = true;
                      });
                      _getCurrentLocation();
                    }
                  : null,
              child: Container(
                child: Padding(
                  padding: const EdgeInsets.all(8.0),
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      isVisibleOut
                          ? defaultClockOut()
                          : isLoadingOut
                              ? Text("Loading...")
                              : (_image == null)
                                  ? Text('Click')
                                  : (_front.length == 0)
                                      ? Text("fail")
                                      : failOut
                                          ? Text("fail")
                                          : defaultClockOut()
                    ],
                  ),
                ),
              ),
            ),
Widget defaultClockOut() {
    print(isVisible);
    print("222");
    return FutureBuilder(
      future: getDataa(),
      builder: (context, snap) {
        if (snap.hasData) {
          print(snap.data);
          return Text(snap.data);
        } else {
          return Container(
              height: 25,
              child: CircularProgressIndicator(
                valueColor: new AlwaysStoppedAnimation<Color>(Colors.white),
              ));
        }
      },
    );
  }

但是我不知道要添加CircularProgressIndicator,因为我必须做某事,当_isMockLocation=false ...可以添加CircularProgressIndicator时?

flutter geolocation load
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.