如何添加应用程序页脚(使用bottomNavigationBar)

时间:2018-03-09 04:16:52

标签: flutter

我们可以使用AppBar小部件添加标题。

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        leading: new Icon(Icons.mail),
        title: new Text("Hello Flutter Header"),
      ),
      body: new Center(
        child: new MyButton(),
      ),
      // **************************************
      // I want to add application footer here
      // **************************************
    );
  }
}

我们如何添加应用程序页脚?

4 个答案:

答案 0 :(得分:2)

Scaffold中有persistentFooterButtons个属性。

答案 1 :(得分:1)

persistentFooterButtons 将在 bottomNavigationBar 上方呈现。这是我在 2021 年的解决方案,使用 bottomNavigationBar 添加应用程序页脚。

注意,title: 已弃用,您应该使用 label:

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(),
    body: Container(),
    bottomNavigationBar: new BottomNavigationBar(
      items: [
        new BottomNavigationBarItem(
          icon: Icon(Icons.thumb_up),
          label: "Like",
        ),
        new BottomNavigationBarItem(
          icon: Icon(Icons.thumb_down),
          label: "Dislike",
        ),
        new BottomNavigationBarItem(
          icon: Icon(Icons.comment),
          label: "Comment",
        )
      ],
    ),
  );
}

答案 2 :(得分:0)

我发现bottomNavigationBar正在为我工​​作。

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        leading: new Icon(Icons.mail),
        title: new Text("Hello Flutter Header"),
      ),
      body: new Center(
        child: new MyButton(),
      ),
      bottomNavigationBar: new BottomNavigationBar(
        items: [
          new BottomNavigationBarItem(
            icon: new Icon(Icons.add),
            title: new Text("Add"),
          ),
          new BottomNavigationBarItem(
            icon: new Icon(Icons.edit),
            title: new Text("Edit"),
          ),
          new BottomNavigationBarItem(
            icon: new Icon(Icons.delete),
            title: new Text("Delete"),
          ),
        ],
      ),
    );
  }
}

如@aziza所述,我们也可以使用persistentFooterButtons。但是在这种方法中,按钮在水平方向上并不完美。

 persistentFooterButtons: <Widget>[
        new FlatButton(
          child: new Icon(Icons.add),
          onPressed: null,
        ),
        new FlatButton(
          child: new Icon(Icons.edit),
          onPressed: null,
        ),
        new FlatButton(
          child: new Icon(Icons.delete),
          onPressed: null,
        ),
      ], 

另一件事是同时使用 bottomNavigationBar persistentFooterButtons bodyFooterButtons body bottomNavigationBar 之间显示。

答案 3 :(得分:0)