2016-07-08 27 views
0

在我的登录页面的应用程序中,我想在服务获取数据之前用Xamarin表单中的消息“加载”加载图像。 enter image description here加载图像,而服务获取数据使用Xamarin形式

对于我这样使用活动指示灯:

ActivityIndicator indicator = new ActivityIndicator { Color = Color.Blue, }; 
     indicator.IsRunning = false; 
     indicator.IsVisible = false; 
     indicator.HorizontalOptions = LayoutOptions.CenterAndExpand; 
     indicator.VerticalOptions = LayoutOptions.CenterAndExpand; 

,并点击登录按钮后,我加了这样的代码

indicator.IsRunning = true; 
    indicator.IsVisible = true; 

现在我只能在获得加载图片相同的screen.But我想像上面的image.can任何人都建议我解决这个问题。 在此先感谢

+0

您可以将ActivityIndi​​cator和图像放在同一个位置,让图像在您准备好显示全部图像之前不可见。然后,使图像可见时,您将使ActivityIndi​​cator和Label不可见。 –

+0

它们被放置在网格中吗? –

回答

0

您可以使用下面库支持Xamarin.Forms藏汉

https://www.nuget.org/packages/Acr.UserDialogs/

编辑1

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Collections.ObjectModel; 
    **using Acr.UserDialogs;** 
    using Xamarin.Forms; 
    using Splat; 

    namespace ProjectScreen 
    { 

     public partial class MainPage : ContentPage 
     { 
      public ObservableCollection<MainPageViewModel> projects { get; set; } 
      public SQLite.Net.SQLiteConnection _connection; 
      public bool IsLoading; 
      public MainPage() 
      { 
       projects = new ObservableCollection<MainPageViewModel>(); 
       InitializeComponent(); 
       this.getConnection(); 
       foreach (Project Pname in this.GetProjects()) 
       { 
        projects.Add(new MainPageViewModel { Name = Pname.name }); 
        lstView.ItemsSource = projects; 
       } 
       AddNewItem.Clicked += (o, s) => 
       { 
        this.PromptCommand(); 
       }; 
       lstView.ItemSelected += LstView_ItemSelected; 
      } 

      private void LstView_ItemSelected(object sender, SelectedItemChangedEventArgs e) 
      { 
        **UserDialogs.Instance.ShowLoading("Loading data");** 
        Task.Run(() => { waitForMinute(); }); 
      } 

      private async void waitForMinute() 
      { 
       await Task.Delay(10000); 
       **UserDialogs.Instance.Loading().Hide();** 
       Device.BeginInvokeOnMainThread(() => 
       { 
        Navigation.PushAsync(new NavigationPage(new ProjectDetails())); 
       }); 
      } 
} 
} 
} 

线,表明该对话框 **是AcrDialog您可以按照您的要求在任何文件中使用它们

确保您在主线程上运行它们

+0

感谢您的回复。我尝试使用Acr.UserDialogs包,但我得到errors.Please指导我如何使用该包装载消息在xamarin形式 – raji

+0

非常感谢。现在它工作了。感谢您的支持 – raji

+0

上述代码在ios中工作正常,但在Android中它不工作,甚至我在主要活动中添加了此行** UserDialogs.Init(this); **。 – raji

相关问题