Xamarin.Essentials: Rozšíření platformy

Xamarin.Essentials poskytuje několik metod rozšíření platformy při práci s typy platforem, jako jsou Rect, Size a Point. To znamená, že můžete převést mezi System verzí těchto typů pro jejich typy pro iOS, Android a UPW.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Použití rozšíření platformy

Přidejte do Xamarin.Essentials předmětu odkaz:

using Xamarin.Essentials;

Všechna rozšíření platformy se dají volat jenom z projektu pro iOS, Android nebo UPW.

Rozšíření pro Android

K těmto rozšířením je možné přistupovat jenom z projektu Pro Android.

Kontext aplikace a aktivita

Pomocí rozšíření platformy ve Platform třídě můžete získat přístup k aktuální Context nebo Activity spuštěné aplikaci.


var context = Platform.AppContext;

// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;

Pokud je situace, kdy Activity je potřeba, ale aplikace nebyla plně spuštěna, WaitForActivityAsync měla by se použít metoda.

var activity = await Platform.WaitForActivityAsync();

Životní cyklus aktivity

Kromě získání aktuální aktivity můžete také zaregistrovat události životního cyklu.

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);

    Xamarin.Essentials.Platform.Init(this, bundle);

    Xamarin.Essentials.Platform.ActivityStateChanged += Platform_ActivityStateChanged;
}

protected override void OnDestroy()
{
    base.OnDestroy();
    Xamarin.Essentials.Platform.ActivityStateChanged -= Platform_ActivityStateChanged;
}

void Platform_ActivityStateChanged(object sender, Xamarin.Essentials.ActivityStateChangedEventArgs e) =>
    Toast.MakeText(this, e.State.ToString(), ToastLength.Short).Show();

Stavy aktivit jsou následující:

  • Vytvořeno
  • Obnovení
  • Pozastaveno
  • Zničeny
  • SaveInstanceState
  • Zahájeno
  • Zastaveno

Další informace najdete v dokumentaci k životnímu cyklu aktivit.

Rozšíření iOSu

K těmto rozšířením se dá přistupovat jenom z projektu iOS.

Current UIViewController

Získání přístupu k aktuálně viditelnému UIViewController:

var vc = Platform.GetCurrentUIViewController();

Tato metoda se vrátí null , pokud nelze rozpoznat UIViewController.

Rozšíření pro různé platformy

Tato rozšíření existují na každé platformě.

Bod

var system = new System.Drawing.Point(x, y);

// Convert to CoreGraphics.CGPoint, Android.Graphics.Point, and Windows.Foundation.Point
var platform = system.ToPlatformPoint();

// Back to System.Drawing.Point
var system2 = platform.ToSystemPoint();

Velikost

var system = new System.Drawing.Size(width, height);

// Convert to CoreGraphics.CGSize, Android.Util.Size, and Windows.Foundation.Size
var platform = system.ToPlatformSize();

// Back to System.Drawing.Size
var system2 = platform.ToSystemSize();

Obdélník

var system = new System.Drawing.Rectangle(x, y, width, height);

// Convert to CoreGraphics.CGRect, Android.Graphics.Rect, and Windows.Foundation.Rect
var platform = system.ToPlatformRectangle();

// Back to System.Drawing.Rectangle
var system2 = platform.ToSystemRectangle();

rozhraní API