如何在PageView中嵌套ListView



我有一个水平的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,
),
)
],
),
],
),
);
}

最新更新