AppBar中的后退按钮显示黑色屏幕抖动

时间:2020-06-09 06:33:37

标签: flutter navigation appbar

我有一个包含A和B屏幕的底部标签导航器,在B屏幕内部,我有一个小部件可以导航到C页面,而在C页面内部,我想添加后退箭头以返回上一个屏幕(B屏幕),所以。 .. 我有一个简单的小部件,代码看起来像这样

@override
  Widget build(BuildContext context) {
    return SafeArea(
        child: Scaffold(
            resizeToAvoidBottomPadding: false,
            appBar: AppBar(
              leading: IconButton(
                icon: Icon(Icons.arrow_back),
                onPressed: () => Navigator.of(context).pop(),
              ),
              title: Text("XXX"),
              centerTitle: true,
            ),
            body: detail()));
  }

问题是每当我单击后退箭头时..它变成黑屏...我不知道问题出在哪里...所以有办法转到我的前一个屏幕吗? 这就是我从B屏幕导航到C页面的方式

InkWell(
                      onTap: () {Navigator.of(context).pushReplacement(MaterialPageRoute(
                            builder: (context) => new NextScreen(check: values)));
                      },
                      child: Text(
                        "Next...",
                        style: TextStyle(
                          fontSize: 13.0,
                        ),
                      ),
                    )

1 个答案:

答案 0 :(得分:1)

看到空白屏幕的原因是因为您使用pushReplacement进行了导航。 pushReplacement的作用是将导航到下一个屏幕而不将其自身堆叠到路线,这意味着它会使应用程序忘记最后一个屏幕是您的屏幕B。请尝试使用Navigator.push()
这是一个示例:

onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ScreenC()),
  );
}