gpt4 book ai didi

flutter - 在创建带有 float 应用栏的应用时使用 StreamBuilder

转载 作者:IT老高 更新时间:2023-10-28 12:35:29 24 4
gpt4 key购买 nike

这是构建带有 float 应用栏的应用的代码:

 @override
Widget build(BuildContext context) {
return new Scaffold(
body: new CustomScrollView(slivers: <Widget>[
new SliverAppBar(
title: new Text('Sliver App Bar'),
floating: true,
snap: true,
bottom: PreferredSize(
preferredSize: const Size.fromHeight(90.0),
child: new Text('dddd'),
),
),
new SliverList(
delegate: new SliverChildListDelegate(buildTextViews(50)))
]),
);
}

这是使用 StreamBuilder 构建应用程序(没有 float 应用栏)的代码:

 @override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
backgroundColor: Colors.orangeAccent,
title: new Text('Find Anything'),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(48.0),
child: new Text('dddd'),
),
),

body: new StreamBuilder(
stream: Firestore.instance.collection('posts').snapshots(),
builder: (context, snapshot) {
List<TekongoPost> posts = preparePosts(snapshot.data.documents);
print("************$posts[0]*************");
if (!snapshot.hasData) return const Text('Loading...');
return ListView.builder(
itemCount: posts.length,
// padding: const EdgeInsets.only(top: 10.0),
// itemExtent: 25.0,
itemBuilder: (context,index) {
return getListItem(context,posts[index]);
},
);
}),
);
}
}

如何像上面第一种情况一样使用 slivers 创建一个带有 float appbar 的应用程序,同时使用上面的 StreamBuilder?

最佳答案

flutter 中的构建器什么都不做。您可以很好地将 SliverList 包装到 StreamBuilder 或任何其他构建器中。它仍将按预期工作。

因此,您唯一需要确保的是您的构建器正确返回了 Sliver,例如 SliverList

CustomScrollView(
slivers: <Widget>[
SliverAppBar(),
StreamBuilder<List<String>>(
stream: myStream,
builder: (context, snapshot) {
return SliverList(
delegate: SliverChildBuilderDelegate((context, index) {
return ListTile(title: Text(snapshot.data[index]));
},
childCount: snapshot.hasData ? snapshot.data.length : 0,
),
);
},
)
],
),

关于flutter - 在创建带有 float 应用栏的应用时使用 StreamBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51254095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com