【问题标题】:back button inside AppBar showing black screen in flutterAppBar内的后退按钮在颤动中显示黑屏
【发布时间】:2020-09-28 06:22:30
【问题描述】:

我有包含 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,
                        ),
                      ),
                    )

【问题讨论】:

  • 你能说明你是如何导航到这个屏幕的吗?
  • 嗨,我已经使用从 B 屏幕到 C 页面的导航代码编辑了我的问题

标签: flutter navigation appbar


【解决方案1】:

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

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

【讨论】:

  • 嗨..我添加你的代码后它就可以工作了......谢谢你的帮助和解释
  • @uyhaW 不客气。祝你在进一步的项目中好运。
猜你喜欢
  • 2019-07-25
  • 2020-05-22
  • 1970-01-01
  • 2019-12-19
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
相关资源
最近更新 更多