防止双击 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;
}
我知道这是一个常见问题,但我找不到答案。
我想在 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;
}