- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很喜欢使用 Sliver,但 SliverAppBar 确实有问题:通常,我使用 SliverAppBar 小部件来创建一个 AppBar,该 AppBar 具有带视差效果的背景图像。所以我只使用灵活的空间,不幸的是,每当您向下滚动时,它就会被 AppBar 部分挡住。我尝试通过将颜色值设置为透明来使 AppBar 部分透明,但它所做的只是使整个事物(包括灵活空间)变得透明。
有没有办法在向下滚动时只使用 SliverAppBar 的灵活空间而不在 AppBar 部分淡出?
这是我使用的代码:
SliverAppBar(
expandedHeight: 220,
pinned: false,
forceElevated: true,
backgroundColor: Colors.transparent,
stretch: true,
leading: Container(),
flexibleSpace: FlexibleSpaceBar(
collapseMode: CollapseMode.pin,
background:Stack(
children: <Widget>[
Image(
fit: BoxFit.cover,
width: MediaQuery.of(context).size.width,
image: AssetImage('assets/images/image2.png'),
),
Positioned(
bottom: 0,
child: Container(
height: 110,
width: MediaQuery.of(context).size.width,
color: Colors.grey,
),
),
Positioned(
bottom: 10,
left: 10,
child: CircleAvatar(
radius: 45,
backgroundImage: AssetImage('assets/images/image.png'),
),
),
Positioned(
bottom: 77,
left: 110,
child: Container(
width: MediaQuery.of(context).size.width -110 -60,
child: Text(
'Name...',
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: TextStyle(
fontSize: 20,
color: Colors.white
),
),
),
),
Positioned(
bottom: 63,
left: 110,
child: Container(
width: MediaQuery.of(context).size.width -110 -60,
child: Text(
'description...',
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: TextStyle(
fontSize: 14,
color: Colors.white70
),
),
),
),
Positioned(
bottom: 5,
left: 110,
child: Container(
width: MediaQuery.of(context).size.width-110,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
],
),
),
),
],
),
),
),
希望这些图片有助于解释我的问题:灵活空间如下所示:Image 1但是一旦向下滚动,灵活的空间就会消失,如下图所示:Image 2我不想让弹性空间消失。
最佳答案
您可能已经找到了答案,但我想如果像我这样的人遇到您的问题,这可能就是您正在寻找的答案。
FlexibleSpaceBar 包含淡出动画,排除它的唯一方法是编写自己的 LayoutBuilder 来处理折叠。
这是一个代码示例,说明如何使用 LayoutBuilder 创建自定义 flexibleSpace 小部件。
NestedScrollView(
headerSliverBuilder: (context, innerBoxIsScrolled) {
return [
SliverAppBar(
titleSpacing: 0,
pinned: false,
backgroundColor: Colors.transparent,
automaticallyImplyLeading: false,
elevation: 0.0,
actions: [
IconButton(
splashRadius: 20,
icon: Icon(
FontAwesomeIcons.cog,
color: Colors.grey[200],
),
onPressed: () {
},
),
],
toolbarHeight: kToolbarHeight,
expandedHeight: maxExtent,
flexibleSpace: LayoutBuilder(
builder: (context, constraints) {
double currentExtent = constraints.maxHeight;
final double deltaExtent = maxExtent - minExtent;
// 0.0 -> Expanded
// 1.0 -> Collapsed to toolbar
final double t =
(1.0 - (currentExtent - minExtent) / deltaExtent)
.clamp(0.0, 1.0) as double;
return Stack(
fit: StackFit.loose,
overflow: Overflow.clip,
children: [
Positioned(
top: _getCollapsePadding(t),
left: 0.0,
right: 0.0,
height: maxExtent,
child: Wrap(
crossAxisAlignment: WrapCrossAlignment.start,
children: [
//Insert Widgets add to your flexible space
],
),
),
],
);
},
),
),
];
},
body: Container()
),
double get maxExtent => 300;
double get minExtent => kToolbarHeight;
double _getCollapsePadding(double t) {
final double deltaExtent = maxExtent - minExtent;
return -Tween<double>(begin: 0.0, end: deltaExtent / 4).transform(t);
}
关于flutter - SliverAppBar 不在 AppBar 中淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60869962/
我想实现如下布局: Layout Link 到目前为止,我正在使用 Sliver。但问题是SearchBar!我希望 SliverAppBar 与布局完全一样并固定在顶部。有什么建议吗? 我试图通过此
我在 sliver 应用栏及其内容方面遇到了一些问题。当我向下滚动 SliverList 的内容(在下面的代码中)时,我想调整 flexibleSpace 中的图像大小,以适应列表顶部元素的图像。 现
我在SliverAppBar中使用flexibleSpace,其中包含以下内容: float :true,固定:false,捕捉:true:当我向上滚动时。它显示AppBar和flexibleSpac
我将 Flutter 的 SliverAppBar 与 SliverList 结合使用。应用栏可以很好地处理长列表,滚动很多。但是,如果我有包含 8 个项目的中等大小列表,则应用栏只会部分折叠,直到列
我有一个 SliverAppBar,向上滚动可缩小,向下滚动可展开。 我想在切换 BottomNavigationBar 时扩展 SliverAppBar。 当前情况下,SliverAppBar保持切
我已按照本教程 (https://medium.com/@diegoveloper/flutter-collapsing-toolbar-sliver-app-bar-14b858e87abe) 创建
我有一个 SliverAppBar( float :true,固定:false)。 我想实现的是,在 SliverAppBar 开始压缩/向上滑动之前,用户必须滚动 200 像素(或其他数量)。 最佳
当 AppBar 重新设置动画时(滚动条到达顶部后),SliverAppBar 无法显示内容。 下面包含一个示例项目来演示该问题。复制/粘贴下面的代码(将 rxdart 依赖项添加到 pubspec.
This is what I'm trying to do ,它是 iOS 上一个相当常见的 Widget。这是我的代码: return Scaffold( backgroundColor: Co
我正在使用 NestedScrollView在这里并试图放一个 TabBar在 bottom SliverAppBar 的参数内置于 headerSliverBuilder功能。 TabBar工作正常
我想在 Flutter 中添加自定义 SliverAppBar,如下所示 The SliverAppBar I want 但我只能做如下 The SliverAppBar I get在 https:/
我收到了 SliverAppBar与 AnimatedContainer里面。此动画容器的高度在运行时会发生变化,因此容器会对其大小进行动画处理。我的问题是,expandedHeight我的 Sliv
我对 Appbar 有这些要求,但我找不到解决它们的方法。 当拉伸(stretch) , AppBar 必须显示 两个图像一个在另一个之上并且标题必须隐藏。 当关闭 , AppBar 必须显示标题和
我在 Dribble 中发现了一些 Appbar 设计 https://dribbble.com/shots/9175650-Beauty-Salon-App/attachments/1218583?
我正在尝试在自定义应用栏下方显示一个灵活的 SliverAppBar(假设它是一个高度为 80.0 的容器)。 当将 SliverAppBar 设置为顶部元素时,它工作正常,但当它是第二个时,顶部填充
我显示来自网络的图像,它在滚动时缩小。我想显示没有填充或裁剪的整个图像。但是,如果我用 expandedHeight 注释行 - 没有图像 - 只有 appbar 及其高度。有没有什么小部件,可以根据
我是使用 flutter 的新手,当我编写我的应用程序时,我遇到了一个问题,即如何默认设置 SliverAppBar 折叠状态。为了解决我的困惑,我查看了 flutter 的文档,不幸的是我找不到解决
有没有人在SliverAppBar中使用过Gradient?当它展开时,我可以在 FlexibleSpace 中执行此操作,但当它折叠时,它会变成纯色。可以治疗吗? 最佳答案 在FlexibleSpa
在 Flutter 中,您可以使用 shape 属性在 AppBar 小部件中自定义形状,但此属性在 SliverAppBar 小部件中缺失 AppBar( title: Text('He
这是我的代码,复制自 here : SliverAppBar( expandedHeight: 150.0, flexibleSpace: const FlexibleSpaceBar(
我是一名优秀的程序员,十分优秀!