2016-07-08 63 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

相關問題