[英]Flutter : Pressing back button closes two screens
我已從儀表板導航到名為“A”的某個屏幕。 在該屏幕中,我使用 ListView Builder 顯示了一個列表。 在那,單擊 ListView 中的項目導航到另一個名為“B”的屏幕。 當我在該屏幕“B”中按下后退按鈕時,它會導航到儀表板。 但它必須導航到屏幕“A”。 請幫我解決這個問題。
在儀表板中,我使用以下代碼導航到屏幕“A”,
_showSnackBar(BuildContext context, Item item) {
switch(item.name)
{
case "Disputes":
Navigator.push(context, MaterialPageRoute(builder: (context)=> Disputes()));
break;
}
}
}
在屏幕“A”中,我使用以下代碼導航到屏幕“B”,
Card(
child: ListTile(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SubmitDisputes(disputesId: disputeResList[index].id.toString())));
},
trailing: Icon(
Icons.remove_red_eye),
));
}),
),
),
當我在屏幕“B”中按下后退按鈕時,它會導航到儀表板。 但是我需要根據 backstacks 導航到“A”。
請幫我!
所以正如評論中所討論的那樣。 使用Navigator.of(context,rootNavigator: true).push(...)
解決了這個問題。
但你為什么一開始會遇到這個問題? 因為您的應用中有多個MaterialApp
。 你只需要在main.dart
保留一個作為根小部件。 所以你有兩個選擇:
MaterialApp
作為根小部件並調用Navigator.of(context).push(...)
MaterialApp
並使用Navigator.of(context,rootNavigator: true).push(...)
如果您需要我的建議,請使用 1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.