我正在尝试复制带有图像的 SliverAppBar 自然附带的文本收缩效果,以便 sliverhead 的背景图像收缩为 sliverAppBar 的应用栏中的前导图标。
我尝试使用 AnimatedPostioned flutter 小部件以及滚动控制器,该控制器isSkrink在页面滚动时切换布尔值的状态。
下面是 AnimatedPosition 小部件:
AnimatedPositioned(
width: isShrink ? 10.0 : 200.0,
height: isShrink ? 10.0 : 200.0,
duration: Duration(seconds: 2),
curve: Curves.linear,
child: Stack(
children: [
Container(
child: Image.asset(
'assets/images/user-avatar.png'),
),
],
),
),
Run Code Online (Sandbox Code Playgroud)
下面是 SliverAppBar,其中 AnimatedPositioned 位于堆栈中,用户图标位于 SliverAppBar 的前导参数中
SliverAppBar(
leading: isShrink
? Padding(
padding: EdgeInsets.all(10),
child: CircleAvatar(
backgroundImage:
AssetImage('assets/images/user-avatar.png'),
backgroundColor: Colors.white,
radius: 3,
),
)
: Container(),
floating: true,
pinned: true,
flexibleSpace: FlexibleSpaceBar(
title: Row(
children: …Run Code Online (Sandbox Code Playgroud)