Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Xamarin.Essentials Udostępnia kilka metod rozszerzenia platformy, gdy trzeba pracować z typami platformy, takimi jak Rect, Size i Point. Oznacza to, że można konwertować między wersją System tych typów dla określonych typów systemów iOS, Android i UWP.
Rozpocznij
Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.
Korzystanie z rozszerzeń platformy
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Wszystkie rozszerzenia platformy mogą być wywoływane tylko z projektu systemu iOS, Android lub platformy UWP.
Rozszerzenia systemu Android
Dostęp do tych rozszerzeń można uzyskać tylko z projektu systemu Android.
Kontekst i działanie aplikacji
Za pomocą rozszerzeń platformy w Platform klasie można uzyskać dostęp do bieżącej Context lub Activity uruchomionej aplikacji.
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
Jeśli występuje sytuacja, w której Activity jest to konieczne, ale aplikacja nie została w pełni uruchomiona WaitForActivityAsync , należy użyć metody .
var activity = await Platform.WaitForActivityAsync();
Cykl życia aktywności
Oprócz pobierania bieżącego działania możesz również zarejestrować się w celu uzyskania zdarzeń cyklu życia.
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();
Stany aktywności są następujące:
- Utworzone
- Wznowione
- Wstrzymana
- Zniszczone
- SaveInstanceState
- Rozpoczęto
- Zatrzymana
Przeczytaj dokumentację cyklu życia działania, aby dowiedzieć się więcej.
Rozszerzenia systemu iOS
Dostęp do tych rozszerzeń można uzyskać tylko z projektu systemu iOS.
Bieżący element UIViewController
Uzyskaj dostęp do aktualnie widocznego UIViewControllerelementu :
var vc = Platform.GetCurrentUIViewController();
Ta metoda zwróci null wartość , jeśli nie można wykryć klasy UIViewController.
Rozszerzenia międzyplatformowe
Te rozszerzenia istnieją na każdej platformie.
Osoba
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();
Rozmiar
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();
Prostokąt
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();