我面臨一個問題,以防止在Xamarin.Forms Android上的PCL項目快速多重控制點擊。基本上我需要解決這些四種情況:如何防止快速點擊多個控件?
- 點擊在導航欄
- 按鈕和後退按鈕點擊按鈕和硬件後退按鈕
- 點擊兩個或更多按鈕在相同的時間
- 點擊相同的按鈕的多個次
我使用NavigationPage 3頁 - MainPage,SecondPage和ThirdPage。在每一頁上都有處理導航的按鈕。
MainPage.xaml.cs中
public async void NavigateToSecondPage(object s, EventArgs e)
{
await Navigation.PushAsync(new SecondPage());
}
SecondPage.xaml.cs
public async void NavigateToMainPage(object s, EventArgs e)
{
if(await DisplayAlert("Alert", "Are you really sure you want to navigate back?", "yes", "no"))
await Navigation.PopAsync();
}
public async void NavigateToThirdPage(object s, EventArgs e)
{
await Navigation.PushAsync(new ThirdPage());
}
ThirdPage.xaml.cs
public async void NavigateToSecondPage(object s, EventArgs e)
{
await Navigation.PopAsync();
}
第一和第二種情況引起的問題,即消息框來自SecondPage的「NavigateToMainPage」事件處理程序位於MainPage上。第三種情況類似,但SecondPage中的MessageBox位於第三頁上。最後一種情況會導致在NavigationStack上多次堆疊相同的頁面。
是否有解決方案,涵蓋所有這些情況?這個問題也適用於本機Android開發者。
Gif representing scenario 1 & 2
你可以更具體,並提供給我的代碼你將如何解決所有情況? –
這就是我一直這樣做,是的它的作品:) –
@Jan看答案編輯。我不能更精確,因爲我不知道Xamarin表單,既不是程序生命週期。所以我做了它,如果它只是在Android上,並沒有涉及片段。如果涉及到碎片(或等價物),或者每個頁面都是一個活動(或等同物),則會更復雜。但是,我幾乎可以肯定,如果你使用不同的活動,頁面問題不會發生。 – Feuby