告诉ActivityIndi​​cator展示自己,然后导航到另一个页面

Mik*_*ish 2 c# xamarin.ios portable-class-library xamarin xamarin.forms

Xamarin.Forms项目中,我试图告诉ActivityIndicator你自己展示然后导航到另一个页面

activityIndicatorObject = new ActivityIndicator()
                {
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Color = Color.Red,
                    IsVisible = false,
                    IsRunning = false,
                    IsEnabled = false,
                    BindingContext = this,
                };
ViewBookButton = new Button{ Text = "view book" };
ViewBookButton.Clicked += ViewBook;
protected void ViewBook(Object sender,EventArgs e)
            {
                //Go To View Book Page 
                activityIndicatorObject .IsVisible = true;
                activityIndicatorObject .IsRunning = true;
                activityIndicatorObject .IsEnabled = true;
                activityIndicatorObject .SetBinding(ActivityIndicator.IsVisibleProperty, "IsBusy");
                this.IsBusy = true;
                Navigation.PushAsync(new BookPage());
                this.IsBusy = false;
            }
Run Code Online (Sandbox Code Playgroud)

ActivityIndicator没有显示?我怎么能让它显示出来?

Yeh*_*kyi 6

据我所知,你ActivityIndicator自己告诉show然后导航到另一页.新页面没有自己的ActivityIndicator.我想建议你用你的OnAppearing方法进行艰苦的操作BookPage.

protected override void OnAppearing()
{
    base.OnAppearing();

    activityIndicator.IsVisible = true;

    // Some hard operations

    activityIndicator.IsVisible = false;
}
Run Code Online (Sandbox Code Playgroud)

或者使用绑定代替 activityIndicator.IsVisible = true;

  • 同意最好在"新"页面上显示ActivityIndi​​cator.更好地直接推送新页面并显示加载,而不是在未定义的时间推送页面.这会给用户带来误导,并且可能会给您难以调查的基于时间的错误.通常,尽可能快地对用户输入做出反应 - 不要等待任何异步操作. (2认同)