我希望创建以下内容:当到达内部Listview的顶部或底部时,我想继续在顶部的Listview中滚动。查看GIF:
一个选项是,在达到底部(使用控制器上的侦听器)时将内部Listview的物理效果设置为NeverScrollablePhysics,但如果您想再次向上滚动,则此选项将不起作用。
请参见下面的代码,提前感谢! 目前的GIF
一个选项是,在达到底部(使用控制器上的侦听器)时将内部Listview的物理效果设置为NeverScrollablePhysics,但如果您想再次向上滚动,则此选项将不起作用。
请参见下面的代码,提前感谢! 目前的GIF
class TestAppHomePage extends StatefulWidget {
@override
TestAppHomePageState createState() => new TestAppHomePageState();
}
class TestAppHomePageState extends State<TestAppHomePage> {
ScrollController _scrollController = ScrollController();
@override
void initState() {
print('set up');
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: Container(
color: Colors.green,
child: ListView(
primary: false,
// controller: _scrollController,
children: <Widget>[topWidget(), topWidget(), topWidget(), topWidget()],
),
),
);
}
Widget topWidget() {
return Card(
color: Colors.purple,
margin: EdgeInsets.all(16),
child: Container(
height: 400,
child: Column(
children: <Widget>[
Container(height: 100, color: Colors.white),
Expanded(
child: ListView(
controller: _scrollController,
children: List.generate(
40,
(index) {
return someText(index);
},
).toList()))
],
),
));
}
Widget someText(int i) {
return Text('text no $i');
}
}
shrinkWrap: true
,它会破坏 ListView 中的重用机制。如果项目数量很大,这将非常缓慢。 - Siyi Guo