[英]How can I use correctly the activity indicator on Xamarin.forms for Android?
[英]How can I implement an Activity Indicator for a Carousel in Xamarin.Forms?
我正在嘗試在啟動“輪播”頁面之前合並一個ActivityIndicator; 這樣,當“輪播”頁面上的內容過多時; 用戶將知道該應用程序仍在加載/尚未掛起。
為了弄清楚這一點,我正在使用使用“輪播”頁面的示例: https : //github.com/chrisriesgo/xamarin-forms-carouselview
我的主要方法是嘗試修改按鈕以在button命令中創建一個ActivityIndicator:
var none = new Button {
HorizontalOptions = LayoutOptions.Center,
Text = "No pager indicator",
Command = new Command((obj) => Navigation.PushAsync(new HomePage(CarouselLayout.IndicatorStyleEnum.None)))
};
var indicator = new ActivityIndicator ();
var none = new Button {
HorizontalOptions = LayoutOptions.Center,
Text = "No pager indicator",
Command = new Command(
indicator.IsRunning,
indicator.IsVisible,
Task.Delay(2500), // to simulate a long loading time
(obj) => Navigation.PushAsync(new HomePage(CarouselLayout.IndicatorStyleEnum.None)))
};
Intellisense已經在告訴我這是錯誤的。 我不能以這種方式在命令中定義它。 但是希望這可以說明我正在嘗試做的事情; 本質上是在等待頁面加載時觸發活動指示器。
我已經在ActivityIndicator上尋找了常規資源,但問題是我還沒有找到可以在等待輪播頁面加載后如何將其轉換為可以在按下按鈕后激活的東西。
https://developer.xamarin.com/api/type/Xamarin.Forms.ActivityIndicator/ http://forums.xamarin.com/discussion/34502/xamarin-forms-activity-indicator Xamarin.Forms-如何覆蓋ActivityIndicator以編程方式在StackLayout中
我不確定我是否正確理解了您的問題,但是:
var indicator = new ActivityIndicator ();
var none = new Button {
HorizontalOptions = LayoutOptions.Center,
Text = "No pager indicator",
Command = new Command(async() => {
indicator.IsRunning = true;
indicator.IsVisible = true;
await Task.Delay(2500);
indicator.IsRunning = false;
indicator.IsVisible = false;
Navigation.PushAsync(new HomePage(CarouselLayout.IndicatorStyleEnum.None));
})
};
但是,為您的ViewModel屬性設置適當的綁定並從那里進行操作會更加干凈。
另一個解決方案,使用Device.StartTimer
var indicator = new ActivityIndicator ();
var none = new Button {
HorizontalOptions = LayoutOptions.Center,
Text = "No pager indicator",
Command = new Command(() => {
indicator.IsRunning = true;
indicator.IsVisible = true;
Device.StartTimer(Timespan.FromSeconds(2.5),()=>
{
indicator.IsRunning = false;
indicator.IsVisible = false;
Navigation.PushAsync(new HomePage(CarouselLayout.IndicatorStyleEnum.None));
return false;
});
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.