如果使用 SliverStack,如何使小部件位于屏幕底部?
how to make a widget to be on the bottom of the screen if using SliverStack?
如上图所示,我在顶部(应用栏正下方)有一个红色容器棒。这是我使用的代码
CustomScrollView(
slivers: [
SliverAppBar(),
_buildStack(),
]
),
Widget _buildStack() {
return SliverStack(
children: [
// I have other widgets here ..
SliverPositioned(
bottom: 0, // <-- I have set the bottom to be zero
child: SliverToBoxAdapter(
child: _buildRedBox(),
),
],
)
}
Widget _buildRedBox() {
return Container(
width: double.infinity,
height: 50,
color: Colors.red,
);
}
我正在使用 sliver tool package,因此我可以访问 SliverStack
和 SliverPositioned
。
如您所见,我已将底部设置为零。但红色框仍在顶部。我需要在我的 SliverStack 中制作屏幕底部的红色框。怎么做?
使用 SliverFillRemaining 小部件而不是 SliverPositioned 小部件。
SliverFillRemaining 将自动调整自身大小以填充最后一个列表项底部和视口底部之间的 space
SliverFillRemaining(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
_buildRedBox(),
],
),
),
如上图所示,我在顶部(应用栏正下方)有一个红色容器棒。这是我使用的代码
CustomScrollView(
slivers: [
SliverAppBar(),
_buildStack(),
]
),
Widget _buildStack() {
return SliverStack(
children: [
// I have other widgets here ..
SliverPositioned(
bottom: 0, // <-- I have set the bottom to be zero
child: SliverToBoxAdapter(
child: _buildRedBox(),
),
],
)
}
Widget _buildRedBox() {
return Container(
width: double.infinity,
height: 50,
color: Colors.red,
);
}
我正在使用 sliver tool package,因此我可以访问 SliverStack
和 SliverPositioned
。
如您所见,我已将底部设置为零。但红色框仍在顶部。我需要在我的 SliverStack 中制作屏幕底部的红色框。怎么做?
使用 SliverFillRemaining 小部件而不是 SliverPositioned 小部件。
SliverFillRemaining 将自动调整自身大小以填充最后一个列表项底部和视口底部之间的 space
SliverFillRemaining(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
_buildRedBox(),
],
),
),