我正在使用 Bloc Pattern 和 Streams 从 HackerNews API 获取文章。
我正在加载所有文章并在流构建器的帮助下在 UI 中呈现,这工作正常。
现在我用新的加载 StreamBuilder 包装了获取 Stream builder 的文章。现在,当加载流构建器为真(意味着它正在加载)时,它会显示一个循环进度指示器,否则,它会显示子项(用流构建器包装的文章列表)。
这工作正常。但是让我烦恼的是我将 Stream builder 包装在流构建器中。我知道我可以得到 rxdart 的帮助,但我不确定如何。
我试图在 snapshot.hasData 的帮助下添加一个加载器,但没有奏效,所以我决定创建另一个流和主题,它接受一个布尔值并告诉 UI 它是否正在加载。
代码在块中获取数据:
_getAndUpdateArticles(StoryType storyType) {
_isLoadingSubject.add(true);
getListIds(storyType).then((list) {
getArticles(list.sublist(0, 10)).then((_){
_articleSubject.add(UnmodifiableListView(_articles));
_isLoadingSubject.add(false);
});
});
}
Run Code Online (Sandbox Code Playgroud)
用户界面:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: StreamBuilder(
stream: widget.hnBloc.isLoading,
builder: (context, snapshot) {
if (snapshot.data) {
return Center(child: CircularProgressIndicator());
} else {
return StreamBuilder<UnmodifiableListView<Article>> (
initialData: UnmodifiableListView<Article>([]),
stream: widget.hnBloc.article, …Run Code Online (Sandbox Code Playgroud) 我在 Android Studio 中打开了一个 Flutter 项目。当我在 pubspec.yaml 文件中导入任何新包后,会弹出一个新的 Android Studio 窗口,但没有打开任何内容。只是一个空白的 Android Studio 屏幕。
我无法关闭它,如果我尝试退出,它只会一起关闭所有窗口。
平台:MacOS Android Studio 版本:3.5
我添加了一个 webview 插件(官方 flutter 插件)来查看网页。其中一个网页正在播放 youtube 视频,当我按下主页按钮时,应用程序进入后台。但问题是声音一直在播放。 应用程序中还有其他部分包含一些播放声音或视频的组件。
所以我想知道一旦我将应用程序移到后台,可以做些什么来完全暂停 webview。
我目前正在使用这个 webview 插件:插件webview_flutter: ^0.3.9+1
中没有选项可以暂停 webview 本身。
我不明白为什么Flutter对象是不可变的。我在Flutter文档中尝试过,但是并没有帮助。如果有人可以帮助我,我会很感激。
另外,我两天前才开始颤抖,这很棒。
flutter ×4
android ×1
bloc ×1
browser ×1
dart ×1
forceclose ×1
immutability ×1
mobile ×1
rxdart ×1
webview ×1