SliverList
是包含盒式widget的滑动控件。是否有一个包含滑动控件的滑动布局控件?
我想嵌套使用flutter_sticky_headers
来创建一个时间轴,但是 SliverStickyHeader
只能接受一个滑动控件作为参数(请参阅monthSlivers()
中的注释)。
class HomeView extends StatelessWidget {
final HomeViewModel viewModel;
HomeView(this.viewModel);
List<Widget> entryTiles(List<EntryTileViewModel> entryVMs) {
return entryVMs.map((entryVM) => EntryTile(viewModel: entryVM)).toList();
}
List<Widget> daySlivers(List<DaySection> daySections) {
return daySections.map((daySection) {
var entries = entryTiles(daySection.entryVMs);
return SliverStickyHeader(
overlapsContent: true,
header: DayHeader(
viewModel: DayHeaderViewModel(date: daySection.date),
),
sliver: SliverList(
delegate: SliverChildBuilderDelegate(
(context, i) => entries[i],
childCount: entries.length,
),
),
);
}).toList();
}
List<Widget> monthSlivers() {
return viewModel.monthSections.map((monthSection) {
var days = daySlivers(monthSection.daySections);
return SliverStickyHeader(
header: MonthHeader(
viewModel: MonthHeaderViewModel(date: monthSection.date),
),
sliver:,// THIS IS WHERE I WANT TO PUT DAYSLIVERS().
);
}).toList();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: CustomScrollView(
slivers: monthSlivers(),
),
);
}
}
CustomScrollView
中有一个可增长的列表(无限滚动)。我将列表包裹在SliverFillRemaining
中,其中hasScrollBody
为true,NeverScrollableScrollPhysics
。这使得我无法滚动到列表的末尾,如果改为ScrollPhysics
,则会导致有两个滚动视口,并允许滚动到列表的末尾。所以我尝试了另一种方式,我将列表包裹在SliverList
中,并给它添加了expanded
或者没有expanded
。但是都没有起作用。我期望能够在不使用多个滚动视口的情况下滚动到列表的末尾。 - undefined