点击PopupMenuItem时,我试图导航到新屏幕。我正在使用showMenu()创建弹出菜单。
调用新屏幕的代码如下所示:
items: [
PopupMenuItem(
onTap: () {
print(movie.title);
// Navigator.of(context).push(MaterialPageRoute(
// builder: (context) => MoreInfo(movie: movie)));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MoreInfo(movie: movie)));
},
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MoreInfo(movie: movie)));
},
child: Text("More info")),
和MoreInfo屏幕代码如下所示:
Scaffold(
backgroundColor: Colors.indigo,
appBar: AppBar(
leading: InkWell(
onTap: () {
Navigator.pop(context);
},
child: Icon(Icons.arrow_back_outlined),
),
title: Text(widget.movie.title),
),
然而,使用PopupMenuItem的onTap字段并不会打开一个新屏幕。它只是打印出movie.title。我还用InkWell Package 了菜单项的文本,当我点击文本时,一个新屏幕确实出现了,但上面没有内容。只是一个空屏幕,背景颜色为Colors.靛蓝,如MoreInfo中所指定的,但是没有其他元素,比如AppBar。这里可能出了什么问题?我需要使用其他类型的导航吗?
1条答案
按热度按时间8yparm6h1#
这段代码也可以工作: