繁体   English   中英

如何在不按动颤动的情况下从一个屏幕导航到另一个屏幕?

[英]How to navigate from one screen to another without onpressed in flutter?

你能告诉我一些如何在不按下按钮的情况下在颤动中从一个屏幕导航到另一个屏幕的方法。 当从 API 得到响应后条件为真时,我使用三元运算符,它向我显示循环进度指示器,当它变为假时,它导航到新屏幕。

     _con.loading 
                  ? Padding(
                           padding: EdgeInsets.all(55),
                           child: CircularProgressIndicator(),)
                  : 
                    Navigator.of(context).pushNamed('/FindingDriver', 
arguments: RouteArgument(param: _con.order.id, param2: _con.order.foodOrders.first.food.restaurant.id)),

这取决于应用程序架构,但最简单的解决方案可能是在屏幕上添加一个帧后回调,如下所示:

class FirstPage extends StatefulWidget {
  @override
  _FirstPageState createState() => _FirstPageState();
}

class _FirstPageState extends State<FirstPage> {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) async {
      final response = await Future.delayed(Duration(seconds: 3));
      Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => SecondPage()));
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text('First'),),
        body: Center(child: CircularProgressIndicator()));
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Second'),),
        body: Container(),);
  }
}

作为替代方案,请考虑利用FutureBuilder并且不替换整个屏幕,而仅替换它的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM