[英]Flutter: how can I make a rounded PopupMenuButton's InkWell?
[英]Flutter how i can get context in PopupMenuButton widget?
我有一個 PopupMenuButton。 但是如果我想調用一個會跳轉到另一個頁面的方法
Navigator.push(context,MaterialPageRoute(builder: (context) => SingleOrder()),);
我有一個錯誤。 未定義的名稱context
。 如何在Navigator.push
中獲取上下文?
Widget _childPopup() => PopupMenuButton<int>(
onSelected: (result) {
if (result == 0) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SingleOrder()),
);
}
},
itemBuilder: (context) => [
PopupMenuItem(
value: 0,
child: Text(
"MENU 1",
style: TextStyle(
color: Colors.black54),
),
),
PopupMenuItem(
value: 1,
child: Text(
"MENU 2",
style: TextStyle(
color: Colors.black54),
),
),
],
);
您需要將BuildContext
傳遞給您的_childPopup
function。 您可能在BuildContext
不直接可用的地方定義了這個 function。 前任。
Widget _childPopup(BuildContext context) => PopupMenuButton<int>(
onSelected: (result) {
if (result == 0) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SingleOrder()),
);
}
},
itemBuilder: (context) => [
PopupMenuItem(
value: 0,
child: Text(
"MENU 1",
style: TextStyle(
color: Colors.black54),
),
),
PopupMenuItem(
value: 1,
child: Text(
"MENU 2",
style: TextStyle(
color: Colors.black54),
),
),
],
);
這樣做可確保BuildContext
可用於 function 並允許您更好地控制它將使用哪個上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.