Aracılığıyla paylaş


Xamarin.Essentials: Platform Uzantıları

Xamarin.Essentials Rect, Size ve Point gibi platform türleriyle çalışmak zorundayken çeşitli platform uzantısı yöntemleri sağlar. Bu, iOS, Android ve UWP'ye özgü türleri için bu türlerin sürümü arasında System dönüştürme yapabileceğiniz anlamına gelir.

Kullanmaya başlayın

Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.

Platform Uzantılarını Kullanma

Sınıfınızda için Xamarin.Essentials bir başvuru ekleyin:

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ı ve Etkinliği

Sınıftaki Platform platform uzantılarını kullanarak geçerli Context uygulamaya veya Activity çalışan uygulamaya erişebilirsiniz.


var context = Platform.AppContext;

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

gerekli olduğu, ancak uygulamanın tam olarak başlatılmadığı WaitForActivityAsync bir durum Activity varsa yöntemi kullanılmalıdır.

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 da 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
  • SaveInstanceState
  • 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 UIViewControllerolan :'e erişim elde edin:

var vc = Platform.GetCurrentUIViewController();

Bu yöntem, algılanamıyorsa UIViewControllerdöndürürnull.

Platformlar arası Uzantılar

Bu uzantılar her platformda bulunur.

Nokta

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

Size

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