Xamarin.Essentials: Rozšíření platformy

Xamarin.Essentials poskytuje několik metod rozšíření platformy pro práci s typy platforem, jako je například Rect, velikost a bod. To znamená, že můžete převádět mezi System verzí těchto typů pro konkrétní typy pro iOS, Android a UWP.

Začínáme

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

Používání rozšíření platformy

Do třídy přidejte odkaz Xamarin.Essentials :

using Xamarin.Essentials;

Všechna rozšíření platformy je možné volat jenom z projektu iOS, Android nebo UWP.

Rozšíření pro Android

K těmto rozšířením se dá dostat jenom z projektu pro Android.

Aktivita kontextu aplikace &

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


var context = Platform.AppContext;

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

Pokud dojde k situaci Activity , kdy je potřeba, ale aplikace se nespustí úplně, pak WaitForActivityAsync by se měla 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 aktivity jsou následující:

  • Vytvořeno
  • Obnovení
  • Pozastaveno
  • Zneškodněn
  • SaveInstanceState
  • Zahájeno
  • Zastaveno

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

Rozšíření iOSu

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

Aktuální UIViewController

Získat přístup k aktuálně viditelnému UIViewController :

var vc = Platform.GetCurrentUIViewController();

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

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

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

Vyberte

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