我有一个水平的PageView,每个页面上都有一些嵌套的垂直LIstView。
问题是我无法滚动那些嵌套的列表视图,因为我只注册CCD_。
注意:当我在customSCrollView
中无限制地使用SliverChildBuilderDelegate
时,滚动实际上是活动的,但其他一切都没有
这就是代码的样子
class ProductDetail extends StatefulWidget {
@override
State<StatefulWidget> createState() => ProductDetailState();
}
class ProductDetailState extends State {
@override
Widget build(BuildContext context) {
return Material(
child: DefaultTabController(
length: 2,
child: Column(
children: [
Expanded(
child: NestedScrollView(
// physics: BouncingScrollPhysics(),
headerSliverBuilder:
(BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[];
},
body: PageView( // this is a pageView container
children: <Widget>[
CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
return ListTile(
title: Text('index $index'),
);
},
childCount: 10
),
)
]
),
CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
return ListTile(
title: Text('index $index'),
);
},
childCount: 10
),
)
]
),
],
),
),
),
Container(
height: 30,
// child:
)
],
),
),
);
}
}
NestedScrollView
在这里搞砸了。由于您没有使用headerSliverBuilder
,因此可以完全删除该小部件。这是工作代码。
@override
Widget build(BuildContext context) {
return Material(
child: PageView(
children: <Widget>[
CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => ListTile(title: Text('index $index')),
childCount: 20,
),
)
],
),
CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => ListTile(title: Text('index $index')),
childCount: 20,
),
)
],
),
],
),
);
}