【发布时间】:2021-02-14 09:59:43
【问题描述】:
我正在 Flutter 中开发一个应用程序,并希望我的 SliverAppBar 具有以下设计,并且在我的应用程序的底部有圆角。当我使用 slivers 时如何做到这一点?
我在 Dribbble 上找到了 YouTuber 的设计,他将应用程序作为教程创建,但没有使用带有 Slivers 的 PageView
这是我正在使用的代码的简化版本:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: PageView(
children: [
CustomScrollView(
slivers: <Widget>[
SliverAppBar(
backgroundColor: Colors.red,
expandedHeight: 250.0,
),
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Card(
child: ListTile(
title: Text('something'),
),
);
},
childCount: 10,
))
],
),
],
),
),
);
}
}
【问题讨论】:
-
嘿,我想帮忙,但您在帖子中并没有完全提出问题。这会让其他人更容易提供帮助!更新帖子也许我能帮上忙。
-
嗨,我更新了我的问题,希望现在一切都清楚了!
-
我查看了您提供的 YouTube 教程。似乎关键部分是他用来构建 body/scrollable-area 的
Column可以采用boxDecoration参数。这不是 Sliver 小部件树中的一个选项,也不是注入边框来实现它。据我所知,由于SliverList对象没有boxDecoration参数,因此在您的情况下使用 Sliver Widgets 是不可能的。可能有人有一个聪明的办法来实现这一点,但我也不会说“这是不可能的”,因为您可能可以使用 Sliver 小部件以外的小部件。 -
非常感谢您尝试帮助我!我认为这也是不可能的,除非他们可以将我的
SliverList转换为容器。