Listview 如何删除颤振列表视图中的剪辑?
我有以下布局,一个Listview 如何删除颤振列表视图中的剪辑?,listview,dart,stack,flutter,clipping,Listview,Dart,Stack,Flutter,Clipping,我有以下布局,一个堆栈,下面有一个列表视图,都在列中 当我滚动列表视图时,正如预期的那样,它会在自己的框中自动剪辑 当滚动到上面的堆栈上时,我需要列表视图。好像它没有被限制在它的边界上 如何实现这一点?您需要一个自定义滚动视图,并且您的标题小部件必须放置在SliverPersistentHeader中: class MyPage extends StatelessWidget { @override Widget build(BuildContext context) { ret
堆栈
,下面有一个列表视图
,都在列
中
当我滚动列表视图时,正如预期的那样,它会在自己的框中自动剪辑
当滚动到上面的堆栈
上时,我需要列表视图
。好像它没有被限制在它的边界上
如何实现这一点?您需要一个自定义滚动视图
,并且您的标题小部件必须放置在SliverPersistentHeader中
:
class MyPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverPersistentHeader(
delegate: MyHeader(),
pinned: true,
),
SliverList(delegate: SliverChildBuilderDelegate((context, index) {
return ListTile(
title: Text('Test $index'),
);
}))
],
),
);
}
}
class MyHeader extends SliverPersistentHeaderDelegate {
@override
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
return Stack(
children: <Widget>[
Container(color: Colors.blue.withOpacity(0.5)),
Align(
alignment: Alignment.bottomCenter,
child: Text('Hello World'),
)
],
);
}
@override
double get maxExtent => 100.0;
@override
double get minExtent => 100.0;
@override
bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) {
return false;
}
}
class MyPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Text('Flutter Playground'),
pinned: true,
backgroundColor: Colors.orange.withOpacity(0.5),
),
SliverList(delegate: SliverChildBuilderDelegate((context, index) {
return ListTile(
title: Text('Test $index'),
);
}))
],
),
);
}
}