Flutter-如何在正文中的未来构建器文本小部件中获得价值回报

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

我试图在将来的构建中获得距离两个坐标的成功,但是正在寻找如何获取代码的body:的Text()小部件中返回的“ kmDis”值。请在下面查看我的完整代码。

Future<String> getDistance(String lat, String lng) async {
    final distanceInMeters = await Geolocator().distanceBetween(
        currentLocation.latitude,
        currentLocation.longitude,
        double.parse(lat),
        double.parse(lng));

    double distancekm = distanceInMeters / 1000;
    String kmDis = distancekm.toStringAsFixed(1);
    //int finalkm = distancekm.round();

    return kmDis;
  }

@override
  Widget build(BuildContext context) {

return Scaffold(
        body:Text("i want to return my kmDis value as string here.")
)

  }

dictionary flutter widget future getdistance
1个回答
1
投票

嗯,您正在处理一个返回Future的函数。

因此,您可以使用FutureBuilder来操作此功能并响应不同的状态。

这是一个简单的代码,处理类似的情况。

someFutureStringFunction()是您的getDistance()

也请查看里面的FutureBuilder小部件Scaffold()

  Future<String> someFutureStringFunction() async {
    return Future.delayed(const Duration(seconds: 1), () => "someText");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder(
        future: someFutureStringFunction(),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            return Text(snapshot.data);
          } else {
            return Text('Loading...');
          }
        },
      ),
    );
  }
© www.soinside.com 2019 - 2024. All rights reserved.