gpt4 book ai didi

flutter - 为什么 Sliver App Bar 的 flexibleSpace 参数必须带一个 const 构造函数的 Widget?

转载 作者:IT王子 更新时间:2023-10-29 07:19:23 25 4
gpt4 key购买 nike

我正在尝试构建一个包含条应用栏的自定义 ScrollView ,以实现类似于此处显示的内容:

https://medium.com/@diegoveloper/flutter-collapsing-toolbar-sliver-app-bar-14b858e87abe

但是我想要搜索这个词,在它下面我想要 3 个 IconButtons 均匀间隔,当页面(CustomScrollView)滚动时,我想要 3 IconButtons 被固定到 SliverAppBar 的顶部并且搜索文本消失...

我试图通过以下代码实现上述目标:

 class SearchPage extends StatelessWidget {

const SearchPage();

@override
Widget build(BuildContext context) {
return CustomScrollView(slivers: <Widget>[
const SliverAppBar(
pinned: true,
expandedHeight: 250.0,
flexibleSpace: _buildSliverAppBarFlex(),
);
}


Widget _buildSliverAppBarFlex() {
return Container(
child: Column(
children: <Widget>[
Text("Search", style: TextStyle(fontSize: 24.0,
color: Colors.white,
fontWeight: FontWeight.bold)),
Row(children: <Widget>[
IconButton(icon: Icon(Icons.flight)),
IconButton(icon: Icon(Icons.hotel)),
IconButton(icon: Icon(Icons.drive_eta))
])
],
)
);
}
}

但是,我收到一条警告,指出 flexibleSpace 必须采用 const 构造函数小部件,而我制作的 _buildSilverAppBarFlex 小部件不是 - 我也无法向其添加 const 或 final ... 有什么想法可以实现我想要的吗?

最佳答案

出现警告是因为您在 SliverAppBar 之前使用了 const,删除它,警告就会消失。

所以,而不是这个

const SliverAppBar(...)

使用这个。

SliverAppBar(...)

如果你想在那里使用 const,请确保你的 FlexibleSpaceBar 也是一个 const

关于flutter - 为什么 Sliver App Bar 的 flexibleSpace 参数必须带一个 const 构造函数的 Widget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com