多次按下按钮加载多个页面(Android)

Posted

技术标签:

【中文标题】多次按下按钮加载多个页面(Android)【英文标题】:Pressing buttons multiple times loads multiple pages (Android) 【发布时间】:2017-07-10 05:01:02 【问题描述】:

当我多次按下按钮时,我想解决问题 - 提供许多相同的页面。我在这里找到了这样的代码。

var stack = Navigation.NavigationStack;
if (stack[stack.Count - 1].GetType() != typeof(DetailsPage))
await Navigation.PushAsync (new DetailsPage ());

Navigation.NavigationStack - 工作正常。Navigation.ModalStack - 不t work. But I cant 获取名称。

【问题讨论】:

在导航到模态页面之前禁用按钮? @Bill Reiss。我知道这个解决方案,但我认为它不是很好的解决方案。 @BillReiss 解决方案是正确的。 【参考方案1】:

关于这个常见问题有各种各样的帖子,我可以在论坛上看到你已经评论过,还有NavigationExtensions class:

public static class NavigationExtensions

    public static async Task PushModalAsyncSingle(this INavigation nav, Page page, bool animated = false)
    
        if (App.Navigation.ModalStack.Count == 0 || 
            App.Navigation.ModalStack.Last().GetType() != page.GetType())
        
            await nav.PushModalAsync(page, animated);
        
    

    public static async Task PushAsyncSingle(this INavigation nav, Page page, bool animated = false)
    
        if (App.Navigation.NavigationStack.Count == 0 ||
            App.Navigation.NavigationStack.Last().GetType() != page.GetType())
        
            await nav.PushAsync(page, animated);
        
    

这里是讨论: https://forums.xamarin.com/discussion/29787/double-tapping-in-xamarin-forms-on-android

【讨论】:

以上是关于多次按下按钮加载多个页面(Android)的主要内容,如果未能解决你的问题,请参考以下文章

【Android开发】如何 使得 android长按按钮=多次按下按钮

Android按钮选择并按下drawable

按下后退按钮未触发

按下后退按钮时强制重新加载/刷新

某些页面上的后退按钮导航不能立即生效,但经过多次点击后

vue路由多个子路由页面加载多次