我在寻找一个解决方法来设置一个带有ListView的StatelessWidget中的FAB的位置,我有一个带有Column的Widget,其中包含两个孩子(ListView和FAB)。我有一个带列的Widget,它包含两个子节点(ListView和FAB).第一个问题是FAB的位置,第二个问题是列的背景。第一个问题是FAB的位置,第二个问题是列的背景,第二个列隐藏了ListView的屁股。
如何将FAB悬停在ListView上?
class ListView extends StatelessWidget {
final List<Bouquet> bouquets;
ListView({@required this.bouquets});
final ScrollController _controller = new ScrollController();
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: ListView(
children: getChildren(),
padding: new EdgeInsets.all(0.0),
controller: _controller,
)),
Container(
color: Colors.red,
child: Row(children: [
Expanded(
child: FloatingActionButton(
child: Icon(Icons.arrow_upward),
onPressed: () => _controller.animateTo(0,
duration: Duration(milliseconds: 500),
curve: Curves.easeInOut),
mini: true,
))
]),
)
],
);
}
List<Widget> getChildren() {}
}
使用 Stack
你可以把widget放在widget上面。我的建议是
@override
Widget build(BuildContext context) {
return Stack(
alignment: Alignment.bottomRight,
children: [
ListView(
children: getChildren(),
padding: new EdgeInsets.all(0.0),
controller: _controller,
),
FloatingActionButton(
child: Icon(Icons.arrow_upward),
onPressed: () => _controller.animateTo(0,
duration: Duration(milliseconds: 500),
curve: Curves.easeInOut),
mini: true,
)
],
);
}