如何在flutter中设置ListView的FloatingActionButton的位置?

问题描述 投票:0回答:1

我在寻找一个解决方法来设置一个带有ListView的StatelessWidget中的FAB的位置,我有一个带有Column的Widget,其中包含两个孩子(ListView和FAB)。我有一个带列的Widget,它包含两个子节点(ListView和FAB).第一个问题是FAB的位置,第二个问题是列的背景。第一个问题是FAB的位置,第二个问题是列的背景,第二个列隐藏了ListView的屁股。

如何将FAB悬停在ListView上?

enter image description here

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() {}
}
listview flutter floating-action-button
1个回答
1
投票

使用 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,
        )
      ],
    );
  }
© www.soinside.com 2019 - 2024. All rights reserved.