gpt4 book ai didi

flutter - 为什么只有 ListView.builder() 中的内容不滚动?

转载 作者:行者123 更新时间:2023-12-04 11:49:20 25 4
gpt4 key购买 nike

我有一个带有 Text 小部件和 ListView 的屏幕,当我尝试在 ListView 内滚动时,它不允许我滚动。

我的 body 是 SingleChildScrollView 但它没有为 ListView.builder 提供 ScrollView 。我试图将 ListView.build 包装在 Expanded 中,但没有成功。

class HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: new AppBar(
title: Text("MyBar"),
centerTitle: true,
),
body: SingleChildScrollView(child: Column(
children: <Widget>[
Text(
"Information"),
Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: widget.match.players.length,
itemBuilder: (context, index) {
return Column(
children: <Widget>[
Card(
child: ListTile(
leading: CircleAvatar(
radius: 30.0,
foregroundColor:
Theme.of(context).primaryColor,
backgroundColor: Colors.grey,
backgroundImage:
CachedNetworkImageProvider("url"),
),
title: new Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
new Text("Some text",
style: new TextStyle(
fontWeight: FontWeight.bold),
),
new Text(
"Some text",
style: new TextStyle(
fontWeight: FontWeight.bold),
),
]),

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

任何人都知道如何使 listView.builder() 可滚动。

最佳答案

您需要制作 ListView.builder不可滚动,所以 SingleChildScrollView可以滚动。您可以通过将这两个属性之一设置为 ListView.builder 来实现这一点。 :

physics: NeverScrollableScrollPhysics()

或者
primary: false

但是使用 ListView.builder您使用它的方式,它会立即创建所有项目。如果您想使用 ListView.builder仅当它们滚动到屏幕上时才有效地创建项目,您可以删除 SingleChildScrollView只需使用 ListView.builder像这样:
ListView.builder(
itemCount: widget.match.players.length + 1,
itemBuilder: (context, index) {
if (index == 0) {
return Text("Information");
}
int listIndex = index - 1;
// then you could use: widget.match.players[listIndex];
return Column(...);
}
)

关于flutter - 为什么只有 ListView.builder() 中的内容不滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58640535/

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