如何使用onPressed从自定义AppBar调用页面?

时间:2020-02-19 15:55:22

标签: flutter

我在Flutter MyApplicationBar.dart中创建了一个自定义appBar 我要包括每一页吗?现在如何调用onPressed:()函数的登录页面

  class MyApplicationBar extends AppBar {
  MyApplicationBar({Key key, Widget title}) 
    : super(key: key, title:title, actions:<Widget>[
    IconButton(
        icon: new Icon(Icons.lock), 
        tooltip: 'Login',
        onPressed: () {
          print('sssss');

        },
      ),
    IconButton(
              icon: const Icon(Icons.supervised_user_circle),
              tooltip: 'Accounts',
              onPressed: () {



              },
            ),
  ]);


}

1 个答案:

答案 0 :(得分:0)

有多种方法可以导航到新页面 1.简单的方法是Navigator.of(context).pushNamed(routeName,arguments:arguments)

,但是最好的方法是使用它,因为它非常干净并且可以提高代码的可读性。 这就是导航的专业方式。 2.在MaterialApp小部件中使用onGenerateRoute

return MaterialApp(
      // remove debug banner 
      debugShowCheckedModeBanner: false,
      title: APP_NAME,
      home: Home(),
      onGenerateRoute: (RouteSettings settings) {
        switch (settings.name) {
        case "abc":
              return CupertinoPageRoute(
                builder: (BuildContext context) {
                  return VideoTopics();
                },
                settings: settings);
        break;
}});

现在要从任何页面导航到abc页面,只需使用此行代码

   Navigator.of(context).pushNamed("abc");

确保您在导航器中传递的文本与onGeneratedRoute中传递的文本相同 因此建议对此类事情使用常量