显示后退按钮而不是抽屉按钮 - 颤动

Jac*_*ack 3 flutter flutter-layout

我有一个使用 Material Design 的 Flutter 项目,当我浏览路线时,appbar 将显示后退按钮。最近刚在我的项目中实现了一个抽屉,抽屉图标覆盖了后退图标。我基本上想撤消此操作,为某些屏幕显示后退按钮,并为其他屏幕显示菜单按钮,就像我定义具有showIcon: false属性的抽屉一样?我知道这篇文章是一个类似的问题,但没有显示问题或解决方案的代码......我的抽屉看起来像这样:

return Scaffold(
  //appbar is here
  appBar: AppBar(
    title: Text("Title"),
  ),
  drawer: drawer,
  body: _buildBody(),
);
Run Code Online (Sandbox Code Playgroud)

我在这里定义抽屉:

var drawer = Drawer(
  child: ListView(
    padding: EdgeInsets.zero,
    children: <Widget>[
      //My listTiles and UserAccountsDrawerHeader are removed for simplicity
    ],
  ),
);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Cop*_*oad 7

我不确定我是否理解正确,这里是输出,下面是完整代码。

在此处输入图片说明

void main() => runApp(MaterialApp(home: MyPage()));

class MyPage extends StatefulWidget {
  @override
  _MyPageState createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: Column(
          children: <Widget>[
            RaisedButton(
              onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (_) => Page1())),
              child: Text("Go to Drawer Page"),
            ),
            RaisedButton(
              onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (_) => Page2())),
              child: Text("Go to Back button Page"),
            ),
          ],
        ),
      ),
    );
  }
}

// this has drawer
class Page1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(),
      drawer: Drawer(),
    );
  }
}


// this has back button and drawer
class Page2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.arrow_back),
          onPressed: () => Navigator.pop(context),
        ),
      ),
      body: Center(),
      drawer: Drawer(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)