【问题标题】:how to avoid open page already exist on Navigation stack? [duplicate]如何避免导航堆栈上已经存在打开的页面? [复制]
【发布时间】:2017-02-21 18:41:09
【问题描述】:

我正在使用 Xamarin.forms,有时用户会在同一个按钮上单击两次,我会搜索以避免两次打开同一页面,也许在第一次单击后禁用该按钮会正常工作,但是如果导航堆栈上已经存在页面,我正在搜索以避免打开同一页面。

btnCustomerPage.Clicked += (object sender, EventArgs e) => 
{
 //CustomerPage already Exist on Navigation Stack,So user already open it.
 Navigation.PushAsync(new CustomerPage(); 
};

【问题讨论】:

标签: c# xamarin.ios xamarin.android xamarin.forms portable-class-library


【解决方案1】:
if (Navigation.NavigationStack.Count == 0 ||
    Navigation.NavigationStack.Last().GetType() != typeof(CustomerPage))
{
    await Navigation.PushAsync(new CustomerPage(), true);
}

【讨论】:

  • 一切正常……谢谢
  • var _appNavi = App.NavigationPage.Navigation; if (_appNavi.NavigationStack.Count == 0 || _appNavi.NavigationStack.Last().GetType() != typeof(RankPage)) { await _appNavi.PopToRootAsync();等待 _appNavi.PushAsync(new RankPage(), true); } //App.NavigationPage.Navigation.PushAsync(new RankPage()); App.MenuIsPresented = false;
猜你喜欢
  • 2021-10-18
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
相关资源
最近更新 更多