【发布时间】:2020-02-11 21:29:04
【问题描述】:
我想将自定义菜单栏(全宽)附加到 sliverAppBar 小部件,以便它会粘在 sliverAppBar 背景的底部并且始终可见。
为了解决这个问题,我将Row 小部件放入FlexibleSpaceBar.title 参数中,但现在我遇到了一个意想不到的问题。
当我将 FlexibleSpaceBar.title 参数中的任何内容包装到 Row 小部件中时,它开始为溢出的填充设置动画。它还将Row 小部件扩展到屏幕边界之外。这是出乎意料的行为。
我不想在 SliverList 滚动上缩小标题填充或调整标题大小。
SliverAppBar(
expandedHeight: 200.0,
floating: false,
pinned: true,
elevation: 0.0,
flexibleSpace: SafeArea(child: // <-- SafeArea doesn't work for FlexibleSpaceBar.title in this case
FlexibleSpaceBar(
background: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(
'assets/images/store.png',
fit: BoxFit.cover,
width: 120,
height: 120,
),
],
),
collapseMode: CollapseMode.none,
titlePadding: EdgeInsetsDirectional.only(start: 100, bottom: 0), // <-- have to add 100 to padding to keep in safe area on the screen
title: Row( // <-- animation enables by default if wrapped in a Row widget
children: [
Icon(Icons.menu, size: 40, color: Colors.white,),
]
)
)
)
),
如何在 sliverAppBar 中为 FlexibleSpaceBar 标题禁用此收缩、大小和动画?
【问题讨论】:
标签: flutter dart flutter-layout