Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Xamarin.Essentials предоставляет несколько методов расширения платформы при работе с такими типами платформы, как Rect, Size и Point. Это означает, что можно осуществлять преобразование между версией System этих типов для их конкретных типов в iOS, Android и UWP.
Начало работы
Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.
Использование расширений платформы
Добавьте ссылку на Xamarin.Essentials в своем классе:
using Xamarin.Essentials;
Все расширения платформы могут вызываться только из проектов iOS, Android или UWP.
Расширения Android
Доступ к этим расширениям можно получить только из проекта Android.
Действие и контекст приложения
Используя расширения платформы в классе Platform, можно получить доступ к текущим элементам Context или Activity для работающего приложения.
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
Если возникает ситуация, когда требуется Activity, но приложение запущено не полностью, следует использовать метод WaitForActivityAsync.
var activity = await Platform.WaitForActivityAsync();
Жизненный цикл действия
Кроме получения текущего действия, вы также можете зарегистрироваться для получения событий жизненного цикла.
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();
Ниже перечислены состояния действий:
- Создание
- Возобновлено
- Приостановлен
- Уничтожаются
- SaveInstanceState
- Запуск
- Остановлено
См. документацию по жизненному циклу действия.
Расширения iOS
Доступ к этим расширениям можно получить только из проекта iOS.
Current UIViewController
Получите доступ к текущему представлению UIViewController:
var vc = Platform.GetCurrentUIViewController();
Этот метод возвращает null, если не удается обнаружить UIViewController.
Кроссплатформенные расширения
Эти расширения существуют на каждой платформе.
Point
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();
Размер
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();
Прямоугольник
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();