Fra*_*cca 2 asynchronous stream dart flutter
由于某种原因,我无法使用StreamGroup或StreamZip
这是代码(完全没用,但我不想激怒管理员)
import 'dart:async';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp() : super(key: const Key('MyApp'));
@override
Widget build(BuildContext context) => const MaterialApp(home: MyHomePage());
}
class MyHomePage extends StatefulWidget {
const MyHomePage() : super(key: const Key('MyHomePage'));
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
static const _duration = Duration(seconds: 3);
static const _initialCx = 3.0;
final _pageStream = Stream<int>.periodic(_duration, (int i) => i);
ScrollController _scrollController;
StreamController<double> _throttle;
@override
void initState() {
_scrollController = ScrollController();
_throttle = StreamController();
StreamGroup<num>.merge([_pageStream, _throttle.stream]); // <= this
StreamZip([_pageStream, _throttle.stream]); // or this
/// i NEED TO IMPLEMENT A LISTENER HERE... THE CODE IS USELESS OTHERWISE
super.initState();
}
@override
void dispose() {
_scrollController?.dispose();
_throttle?.close();
super.dispose();
}
@override
Widget build(BuildContext context) => Scaffold(
body: Stack(children: <Widget>[
ListView.builder(
controller: _scrollController,
itemBuilder: (BuildContext context, int index) => const Center(
child: FlutterLogo(size: 160),
),
),
Align(
alignment: Alignment.bottomCenter,
child: StreamBuilder<double>(
builder: (context, throttle) => Slider(
min: 1,
max: 5,
onChanged: (double value) => _throttle.sink.add(value),
value: throttle.data ?? _initialCx,
),
),
),
]),
);
}
Run Code Online (Sandbox Code Playgroud)
这里分别是错误
压缩包
没有为类型“_MyHomePageState”定义方法“StreamZip”。尝试将名称更正为现有方法的名称,或定义名为“StreamZip”的方法。
蒸汽集团
名称“StreamGroup”不是一个类。尝试更正名称以匹配现有类。
诚然,我对这些课程没有太多经验,所以解决方案可能很简单,
你能解释一下我如何访问这些吗?
谢谢
这不是很明显,由于方式,颤振API文档合并一切融合在一起,而是StreamZip和StreamGroup来自package:async不从dart:async。你将需要更换import 'dart:async';与import 'package:async/async.dart';和添加一个async依赖于你的pubspec.yaml文件。
(尽管package:async来自 Dart 开发人员,但它与以下dart:async原因分开:
package:async不被视为 Dart SDK 的核心部分。package:async 可以用纯 Dart 代码实现。| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |