Flutter AppBar内的后退按钮在颤振中显示黑屏
我有底部选项卡导航器,包含A和B屏幕,在B屏幕内我有导航到C页面的小部件,在C页面内我想添加返回箭头以返回到上一个屏幕(B屏幕),所以。。。 我有一个简单的小部件,代码如下Flutter AppBar内的后退按钮在颤振中显示黑屏,flutter,navigation,appbar,Flutter,Navigation,Appbar,我有底部选项卡导航器,包含A和B屏幕,在B屏幕内我有导航到C页面的小部件,在C页面内我想添加返回箭头以返回到上一个屏幕(B屏幕),所以。。。 我有一个简单的小部件,代码如下 @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( resizeToAvoidBottomPadding: false, appBar: A
@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,
),
),
)
之所以会出现空白屏幕,是因为您使用了
pushReplacement
导航。什么是pushReplacement
,它将导航到下一个屏幕,而不会将自身堆叠到路线,这意味着它将使应用程序忘记上一个屏幕是您的屏幕B。请尝试改用Navigator.push()
。以下是一个例子:
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ScreenC()),
);
}
你能展示一下你是如何导航到这个屏幕的吗?嗨,我已经用我的导航代码从B屏幕编辑了我的问题到C页面嗨。。在我添加了你的代码之后它就可以工作了。。。谢谢你的帮助和帮助explanation@uyhaW不客气。祝你以后的项目好运。