gpt4 book ai didi

android - 在 Flutter 应用的 ListView.builder 中添加滚动

转载 作者:IT王子 更新时间:2023-10-29 06:45:41 24 4
gpt4 key购买 nike

我正在尝试使 ListView 能够滚动,当我用谷歌搜索并找不到一个可以理解和简单的解决方案时,我尝试制作一个自定义滚动(来自链接 https://docs.flutter.io/flutter/widgets/ListView-class.html 的示例),目前它不起作用.

代码如下:

CustomScrollView(
shrinkWrap: true,
slivers: <Widget>[
SliverPadding(
padding: const EdgeInsets.all(20.0),
sliver: SliverList(
delegate: SliverChildListDelegate(
<Widget>[
StreamBuilder(
stream: Firestore.instance.collection("Items").snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return new ListView.builder(
padding: const EdgeInsets.only(top: 5.0),
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: snapshot.data.documents.length,

itemBuilder: (BuildContext context,int index) {
DocumentSnapshot ds = snapshot.data.documents[index];
return new Row(

textDirection: TextDirection.ltr,
children: <Widget>[
Expanded(child: Text(ds["item1"])),
Expanded(child: Text(ds["item2"])),
Expanded(child: Text(ds["price"].toString())),
],
);
});
}
else {
return Align(
alignment: FractionalOffset.bottomCenter,
child: CircularProgressIndicator(),
);

}
},
)
],
),
),
),
],
)

下面是模拟器的截图(Kindly node,手机上也一样): enter image description here

请帮助我提供可滚动 ListView 的指针或示例代码。

最佳答案

您不需要使用 CustomScrollView。 ListView 本身就是一个滚动小部件。所以你只需要在你的 StreamBuilder 中创建它。

@override
Widget build(BuildContext context) {
return StreamBuilder<List<int>>(
stream: posts,
builder: (BuildContext context, AsyncSnapshot<List<int>> snapshot) {
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return const Text('Loading...');
default:
if (snapshot.data.isEmpty) {
return const NoContent();
}
return _itemList(snapshot.data);
}
},
);
}

CustomScrollView 用于在其中添加 Sliver 小部件。

关于android - 在 Flutter 应用的 ListView.builder 中添加滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133543/

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