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