我在项目中使用SliverAppBar
和SliverListView
。
我需要BorderRadius
到我的SliverList
,这是我的SliverAppBar
的底部。
这里是截图我需要什么:
下面是我的代码:
Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
backgroundColor: Colors.transparent,
brightness: Brightness.dark,
actions: <Widget>[
IconButton(icon: Icon(Icons.favorite), onPressed: () {}),
IconButton(icon: Icon(Icons.share), onPressed: () {})
],
floating: false,
pinned: false,
//title: Text("Flexible space title"),
expandedHeight: getHeight(context) - MediaQuery.of(context).padding.top,
flexibleSpace: Container(
height: double.infinity,
width: double.infinity,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: AssetImage("assets/images/Rectangle-image.png")
)
),
),
bottom: _bottomWidget(context),
),
SliverList(
delegate: SliverChildListDelegate(listview),
),
],
),
)
因此,使用此代码,UI将如下所示...
可以建议任何其他的方法,我可以采取来实现这种设计。。
8条答案
按热度按时间q1qsirdb1#
我使用
SliverToBoxAdapter
实现了这个设计,我的代码如下。我在SliverToBoxAdapter中使用了2个容器。
SliverToBoxAdapter位于长条应用程序列和长条清单之间。
1.首先我为角边创建一个蓝色(应该是Appbar颜色)容器。
1.然后在蓝色容器内创建一个高度相同的白色容器,并为列表视图使用border-radius。
Preview on dartpad
xesrikrc2#
溶液
在撰写本文时,还没有支持此功能的小部件。
之前:
以下是您的默认代码:
之后
下面是使用
Stack
和SliveWidget
小部件完成的代码:ncgqoxb03#
使用Stack。这是我找到并使用过的最好、最流畅的方法。Preview
2nbm6dog4#
对我有用!
mf98qq945#
这个想法是好的,但在某些情况下看起来很奇怪。
可以将
borderRadius
赋给列表中的第一个元素希望这对某人有帮助
qvtsj1bj6#
试试这个,这是一个简单的解决方案
rekjcdws7#
p1iqtdky8#
所以最好的方法是在SliverAppBar中使用“bottom”属性。这会将您的圆角容器添加到appbar的底部/sliverlist的开头