Xamarin: Wartedialog Daten laden

Aus maxTechCorner
HinweisXamarin hat am 1. Mai 2024 das Support-Ende erreicht; Nachfolger ist .NET MAUI. Dieser Artikel bleibt als Referenz erhalten – für neue Projekte gilt .NET MAUI.

Lädt eine App Daten aus dem Netz, soll ein Wartedialog den Ladevorgang anzeigen. Umsetzung über ein IsLoaded-Flag im ViewModel und ein an dieses Flag gebundenes UI.

ViewModel vorbereiten

public async void LoadData(int countryId)
{
    IsLoaded = false;
    MyCustomerList = await DataManager.GetCustomersByLand(countryId);
    IsLoaded = true;
}

(MyCustomerList und IsLoaded sind Properties mit RaisePropertyChanged.)

Xamarin.Android

Ein ProgressBar und der Content werden in einem FrameLayout zusammengefasst; die Sichtbarkeit steuert:

private void SetActivContent(bool isloaded)
{
    CustomersListView.Visibility = isloaded ? ViewStates.Visible : ViewStates.Gone;
    LoadLayout.Visibility       = isloaded ? ViewStates.Gone    : ViewStates.Visible;
}

Bindings in OnStart erzeugen und in OnStop lösen (siehe Xamarin MvvmLight-Binding funktioniert nicht).

Wartemaske (Android)


Xamarin.iOS

Gleiche Vorgehensweise; als Control dient der UIActivityIndicatorView:

private void SetActivContent()
{
    if (!ViewModel.IsLoaded)
    {
        ActivityIndicator1.Hidden = false;
        ActivityIndicator1.StartAnimating();
        CustomerTableView.Hidden = true;
    }
    else
    {
        ActivityIndicator1.Hidden = true;
        CustomerTableView.Hidden = false;
    }
}
Wartemaske (iOS)


Unterstützung von m.a.x. it

Bei plattformübergreifender App- und Software­entwicklung unterstützt Sie m.a.x. it mit individueller Softwareentwicklung.


Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung? Kontakt aufnehmen