如何在Xamarin.Forms中实现旋转木马的活动指示器?
本文关键字:旋转木马 活动 指示器 实现 Xamarin Forms | 更新日期: 2023-09-27 18:11:08
我试图在启动Carousel页面之前合并一个ActivityIndicator;这样,当Carousel页面内容繁重时;用户将知道应用程序仍在加载/尚未挂起。
为了弄清楚这一点,我从这个使用Carousel页面的示例中工作:https://github.com/chrisriesgo/xamarin-forms-carouselview
我的主要方法是试图修改按钮,以在按钮命令中创建一个ActivityIndicator:
来自"SwitcherPage.cs"的原始样本
var none = new Button {
HorizontalOptions = LayoutOptions.Center,
Text = "No pager indicator",
Command = new Command((obj) => Navigation.PushAsync(new HomePage(CarouselLayout.IndicatorStyleEnum.None)))
};
<标题>我尝试h1> 前我所知道的智能感知已经告诉我这是错误的;我不能在命令中这样定义它。但希望这能说明我要做的;在等待页面加载时触发一个活动指示器。
我已经在ActivityIndicator上寻找了一般资源,但问题是我没有发现任何我可以弄清楚如何将其转换为在等待Carousel页面加载时按下按钮后将激活的东西。
https://developer.xamarin.com/api/type/Xamarin.Forms.ActivityIndicator/http://forums.xamarin.com/discussion/34502/xamarin-forms-activity-indicatorXamarin的。窗体-如何以编程方式在StackLayout的中间叠加一个ActivityIndicator
标题>我不确定我是否正确理解了你的问题,但是:
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属性并从那里做事情会干净得多。
另一个解决方案,使用设备。开始时间
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;
});
});
};