防止双击 android Prism xamarin

Prevent double tapping android Prism xamarin

我知道这是一个常见问题,但我找不到答案。

我想在 Android 中阻止 "quick double tapping"。

我正在使用棱镜,我不确定我应该如何implement/make使用“CanNavigateAsync(INavigationParameters)。

假设我有一个 toolbarItem 到 "Add something",它被映射到一个命令,我执行以下操作:

    private DelegateCommand<MyVM> tappedToolbarItemCommand;
    public DelegateCommand<MyVM> TappedToolbarItemCommand
    {
        get
        {
            return tappedToolbarItemCommand
                   ?? (tappedToolbarItemCommand = new DelegateCommand<MyVM>(async args => await OnToolbarItemTapped(args))
                       .ObservesProperty(() => !IsBusy)
                       .ObservesCanExecute(CanExecute());
        }
    }

    private bool CanExecute()
    {
        if (IsBusy) return false;

        //HOW DO I MAKE USE OF "CanNavigateAsync"
        CanNavigateAsync(??) what parameters?
        return true;
    }

    private async Task OnToolbarItemTapped(MyVM vm)
    {           
        await NavigationService.NavigateAsync($"NavPage/{nameof(MyPage)}");                        
    }

那么如何使用 Prism 防止双击?

非常感谢

您只需执行此操作即可防止双击:

  private bool _canNavigate = true;
  public bool CanNavigate
  {
        get { return _canNavigate; }
        set { SetProperty(ref _canNavigate, value); }
  }

 NavigateCommand = new DelegateCommand(Navigate).ObservesCanExecute((vm) => CanNavigate);

 async void Navigate()
 {
        CanNavigate = false;
        await _navigationService.NavigateAsync("ViewB");
        CanNavigate = true;
 }

有相关link。 https://github.com/PrismLibrary/Prism/issues/442