我具有底部的选项卡导航器,其中包含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,
),
),
)
之所以看到空白屏幕是因为您使用pushReplacement
进行了导航。 pushReplacement
的作用是它将导航到下一个屏幕,而不会堆积到该路线,这意味着该应用将使您忘记最后一个屏幕是您的屏幕B。请尝试使用Navigator.push()
。这是一个例子:
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ScreenC()),
);
}