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

API