2016-07-08 4 views
0

私のアプリケーションのログインページでは、サービスがデータを取得する前にxamarinフォームにメッセージ「Loading」が表示されます。サービスが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; 

のようなコードを追加しました:私はこのようなアクティビティインジケータを使用することについては enter image description here

私は上記のイメージのようにしたい。誰も私にこれを解決するように提案する。事前

+0

ActivityIndi​​catorとImageの両方を同じ場所に配置し、すべて表示する準備ができるまでImageを非表示にすることができます。次に、イメージを表示するときは、ActivityIndi​​catorとLabelを非表示にします。 –

+0

グリッドに配置されていますか? –

答えて

0

で ありがとうございますのためのものです。**それはXamarin.Formsがで示さ

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

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

行をaswellサポートダイアログ ために次のライブラリを使用することができますAcrDialogあなたの要件に応じて任意のファイルで使用できます

メインスレッドで実行することを確認してください

+0

お返事ありがとうございます。私はAcr.UserDialogsパッケージを使用してみましたが、エラーが発生しています.Xamarinフォームにメッセージを読み込むためにそのパッケージを使用する方法を教えてください。 – raji

+0

ありがとう、ありがとうございました。今あなたのサポートのためにたくさんのことをありがとうございます。 – raji

+0

上記のコードはうまくいきますが、アンドロイドでうまく動作せず、私もこの行を追加しました** UserDialogs.Init(this); **主なアクティビティで**。 – raji

関連する問題