Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin.Forms中实现转盘的活动指示器?_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 如何在Xamarin.Forms中实现转盘的活动指示器?

C# 如何在Xamarin.Forms中实现转盘的活动指示器?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,在启动旋转木马页面之前,我试图加入一个ActivityIndicator;这样,当转盘页面内容繁重时;用户将知道应用程序仍在加载/尚未挂起 为了解决这个问题,我正在使用一个旋转木马页面的示例: 我的主要方法是尝试修改按钮以在按钮命令中创建ActivityIndicator: 来自“SwitcherPage.cs”的原始样本 我的尝试 到目前为止我所知道的 智能感知已经告诉我这是错误的;我不能用那种方式在命令中定义它。但希望这能说明我想做什么;实际上,在等待页面加载时触发活动指示器 我已经在Ac

在启动旋转木马页面之前,我试图加入一个ActivityIndicator;这样,当转盘页面内容繁重时;用户将知道应用程序仍在加载/尚未挂起

为了解决这个问题,我正在使用一个旋转木马页面的示例:

我的主要方法是尝试修改按钮以在按钮命令中创建ActivityIndicator:

来自“SwitcherPage.cs”的原始样本 我的尝试 到目前为止我所知道的 智能感知已经告诉我这是错误的;我不能用那种方式在命令中定义它。但希望这能说明我想做什么;实际上,在等待页面加载时触发活动指示器

我已经在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属性设置适当的绑定并从中执行操作会更简洁。

另一种解决方案是使用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;
        });
    });

};
    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));
        })
    };
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;
        });
    });

};