Xamarin.Essentials: Platform uzantıları
Xamarin.Essentials , dikdörtgen, boyut ve nokta gibi platform türleriyle çalışmak zorunda kalmadan birkaç platform genişletme yöntemi sağlar. Bu, System iOS, Android ve UWP 'e özgü türler için bu türlerin sürümü arasında dönüşüm oluşturabileceğiniz anlamına gelir.
başlarken
Bu API 'yi kullanmaya başlamak için, kitaplığın projelerinizde düzgün bir şekilde yüklendiğinden ve ayarlandığından emin olmak için Başlarken Kılavuzunu okuyun.
Platform uzantılarını kullanma
Sınıfınıza bir başvuru ekleyin Xamarin.Essentials :
using Xamarin.Essentials;
Tüm platform uzantıları yalnızca iOS, Android veya UWP projesinden çağrılabilir.
Android uzantıları
Bu uzantılara yalnızca bir Android projesinden erişilebilir.
Uygulama bağlamı & etkinliği
Sınıf içinde platform uzantılarını kullanarak, Platform geçerli Context veya Activity çalışan uygulamaya erişim sağlayabilirsiniz.
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
Gereken bir durum varsa Activity , ancak uygulama tam olarak başlamamışsa, WaitForActivityAsync yöntemin kullanılması gerekir.
var activity = await Platform.WaitForActivityAsync();
Etkinlik Yaşam Döngüsü
Geçerli etkinliği almaya ek olarak yaşam döngüsü olaylarına de kaydolabilirsiniz.
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();
Etkinlik durumları şunlardır:
- Oluşturulan
- Sürdürülüyor
- Duraklatıldı
- Yok
- Saveınstancestate
- Başlarken
- Durduruldu
Daha fazla bilgi edinmek için etkinlik yaşam döngüsü belgelerini okuyun.
iOS Uzantıları
Bu uzantılara yalnızca bir iOS projesinden erişilebilir.
Geçerli UIViewController
Şu anda görünür durumda olan erişimi kazanın UIViewController :
var vc = Platform.GetCurrentUIViewController();
Bu yöntem, null algılanmazsa döndürülür UIViewController .
Platformlar arası uzantılar
Bu uzantılar her platformda bulunur.
Seçeneğinin
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();
Boyut
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();
Dikdörtgen
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();