Lyt*_*hey 2 api flutter flutter-dependencies flutter-web
美好的一天,伙计们。我正在 flutter 中制作一个足球比分实时数据应用程序。我不知道如何解决这个问题,如果我使用 http.get,我将不得不每次刷新才能获取最新数据。我不知道 StreamBuilder 是否有效以及如何进行。在此先感谢您的帮助。
小智 10
正如文档中所解释的,StreamBuilder 是:
基于与流交互的最新快照构建自身的小部件。
因此,要使用它,首先您需要创建一个提供数据的 Stream,将其传递给 StreamBuilder 的 Stream 属性,然后在 builder 属性中根据快照数据构建小部件。
这是一个简短的示例,用于Stream.periodic每 5 秒返回一次 future 并产生 future 调用:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class PeriodicRequester extends StatelessWidget {
Stream<http.Response> getRandomNumberFact() async* {
yield* Stream.periodic(Duration(seconds: 5), (_) {
return http.get("http://numbersapi.com/random/");
}).asyncMap((event) async => await event);
}
@override
Widget build(BuildContext context) {
return StreamBuilder<http.Response>(
stream: getRandomNumberFact(),
builder: (context, snapshot) => snapshot.hasData
? Center(child: Text(snapshot.data.body))
: CircularProgressIndicator(),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6659 次 |
| 最近记录: |