Релиз Xamarin.Forms 5.0.0.2599-pre1 (5.0.0 Service Release 15 Pre Release 1)

Автор:

learn.microsoft.com

Обновление до версии Xamarin.Forms 5.0

В текущем релизе Xamarin.Forms 5 появилось несколько новых элементов управления и функций, включая темы приложения (темную), кисти, CarouselView, RadioButton, Shapes and Paths и SwipeView.

При обновлении приложений до Xamarin.Forms 5 необходимо обратить внимание на некоторые изменения и удаления. Ниже приведен их список:

Требования

  • Целевым фреймворком должен быть Android 13 или выше.
  • AndroidX теперь используется по умолчанию для Xamarin.Forms. Руководство по переходу с Android Support на AndroidX можно найти в нашей документации здесь.

Visual Studio 2017 больше не поддерживается

Обновления для Android и iOS поставляются только в Visual Studio 2019, и они являются основополагающими для получения последних исправлений безопасности платформы, требуемых Apple и Google. Перед обновлением до Xamarin.Forms 5 установите Visual Studio 2019.

Переименование MasterDetailPage

MasterDetailPage была переименована в FlyoutPage. Это изменение соответствует нашим ценностям разнообразия и инклюзивности. Ранее мы переименовали нашу мастер-ветку на GitHub в main. Это название также более точно отражает поведение элемента управления. Оно также соответствует тому, как мы описываем это поведение в Shell.

Что делать после обновления?

Данное обновление является устаревшим, поэтому ваше приложение будет работать как и раньше. Чтобы принять это изменение, мы рекомендуем вам переименовать MasterDetailPage в ваших проектах в FlyoutPage. Также были изменены названия некоторых других типов и свойств, в том числе:

  • MasterDetailPage.Master заменен на FlyoutPage.Flyout
  • MasterBehavior заменен на FlyoutLayoutBehavior

Изменения в RadioButton

RadioButton теперь поддерживает установку произвольного содержимого и использование шаблонов элементов управления. Вы можете начать с простого текста:

<StackLayout
   RadioButtonGroup.GroupName="SimpleRadios"
   Orientation="Horizontal">
   <RadioButton Content="Day"/>
   <RadioButton Content="Week"/>
   <RadioButton Content="Month"/>
</StackLayout>

И добавлять более сложные пользовательские интерфейсы в соответствии с вашими потребностями в дизайне:

<RadioButton
   ControlTemplate="{StaticResource
                       CalendarRadioTemplate}">
   <RadioButton.Content>
       <StackLayout
           HorizontalOptions="Center"
           VerticalOptions="Center">
           <Image
               Source="{FontImage FontFamily=FontAwesome,
                       Glyph={x:Static local:IconFont.CalendarDay},
                       Color=#323130,Size=32}"/>
           <Label Text="Day" TextColor="#323130"/>
       </StackLayout>
   </RadioButton.Content>
</RadioButton>

Пример XAML шаблона управления находится здесь.

Удаление UIWebView

UIWebView был полностью удален. С марта Apple предупреждала, что использование этого элемента управления устарело, и приложения будут отклоняться уже с конца года. Начиная с версии 4.x, мы перешли в Xamarin.Forms на использование WKWebView по умолчанию, а в версии 4.6 сделали возможным удаление рендерера UIWebView, чтобы процесс проверки Apple не помечал приложения как нарушающие их политику. Тем не менее, сторонние проекты все еще могут использовать UIWebView и провоцировать нарушение. Теперь это элемент был полностью удален, и мы рекомендуем всем библиотекам обязательно перейти на WKWebView.

Что делать после обновления?

Если у вас нет известной потребности в UIWebView, то делать ничего не нужно. Для всех остальных код рендерера доступен на GitHub для копирования в исходный код приложения.

C# UI, Expander и MediaElement перемещены

Эти экспериментальные функции были перенесены (или будут перенесены в ближайшее время) в набор инструментов Xamarin Community Toolkit, который все должны использовать в полной мере. Это библиотека содержит полезные элементы управления Xamarin, эффекты, преобразователи значений и многое другое. Более того, в ней есть даже собственные элементы управления CameraView, Avatar view и RangeSlider. Эти функции и элементы управления продолжают развиваться и совершенствоваться, и пока Xamarin.Forms переходит в расширенный стабильный релиз, мы считаем, что пока их лучше поставлять в дублях. В будущем они могут быть возвращены в основную библиотеку.

Если вы хотите узнать больше, посетите GitHub и канал Discord проекта.

Что делать после обновления?

Если вы использовали эти функции и элементы управления, то добавьте в свой проект последнюю версию Xamarin Community Toolkit. После разрешения новых пространств имен ваш проект снова должен компилироваться. При каждом обновлении NuGets необходимо выполнять полную очистку и сборку.

Удалены пакеты DataPages и Themes

В Xamarin.Forms 2 до перехода в Microsoft были создали прототипы некоторых интересных способов построения пользовательских интерфейсов, управляемых данными. Эти эксперименты поставлялись в виде пакетов предварительного просмотра под названием DataPages и Themes. С тех пор мы продолжали поставлять эти пакеты, но ни работы, ни интереса клиентов к ним не прибавилось. Вместо этого появились такие функции, как App Themes, гораздо более простые в использовании и реализующие темный и светлый режимы, а также общую поддержку тем с использованием динамических стилей. Начиная с Xamarin.Forms 5, мы больше не будем создавать и поставлять эти пакеты.

Что делать после обновления?

Если пакеты установлены и не используются, то их можно удалить.

Что касается использования тем, то переведите свою реализацию на использование динамических стилей и AppThemeBinding.

XFCorePostProcessor.Tasks удален

В этот проект внедряется IL для поддержания совместимости с XF 2.5. Мы уже достаточно далеко ушли от XF 2.5, чтобы это вплетение больше не требовалось.

История релизов

  • 10 мая 2023 г. – Xamarin.Forms 5.0.0.2599–pre1 (5.0.0 Service Release 15 Pre Release 1)
  • 8 марта 2023 г. – Xamarin.Forms 5.0.0.2578 (5.0.0 Service Release 14)
  • 6 декабря 2022 г. – Xamarin.Forms 5.0.0.2545 (5.0.0 Service Release 13)
  • 25 июля 2022 г. – Xamarin.Forms 5.0.0.2515 (5.0.0 Service Release 12)
  • 8 июня 2022 – Xamarin.Forms 5.0.0.2478 (5.0.0 Service Release 11)
  • 29 марта 2022 г. – Xamarin.Forms 5.0.0.2401 (5.0.0 Service Release 10)
  • 25 января 2022 г. – Xamarin.Forms 5.0.0.2337 (5.0.0 Service Release 9)
  • 10 декабря 2021 г. – Xamarin.Forms 5.0.0.2291 (5.0.0 Service Release 8)
  • 15 ноября 2021 г. – Xamarin.Forms 5.0.0.2244 (5.0.0 Service Release 7)
  • 15 октября 2021 г. – Xamarin.Forms 5.0.0.2196 (5.0.0 Service Release 6)
  • 17 сентября 2021 г. – Xamarin.Forms 5.0.0.2125 (5.0.0 Service Release 5)
  • 12 июля 2021 г. – Xamarin.Forms 5.0.0.2083 (5.0.0 Service Release 4)
  • 12 февраля 2021 г. – Xamarin.Forms 5.0.0.2012 (5.0.0 Service Release 3)
  • 25 января 2021 г. – Xamarin.Forms 5.0.0.1931 (5.0.0 Service Release 2)
  • 19 января 2021 – Xamarin.Forms 5.0.0.1905 (5.0.0 Service Release 1)
  • 5 января 2021 г. – Xamarin.Forms 5.0.0.1874 (5.0.0)
  • 22 декабря 2020 – Xamarin.Forms 5.0.0.1829–pre6 (5.0.0 Pre Release 6)
  • 8 декабря 2020 – Xamarin.Forms 5.0.0.1791–pre5 (5.0.0 Pre Release 5)
  • 16 ноября 2020 – Xamarin.Forms 5.0.0.1709–pre4 (5.0.0 Pre Release 4)
  • 14 октября 2020 – Xamarin.Forms 5.0.0.1558–pre3 (5.0.0 Pre Release 3)
  • 7 октября 2020 – Xamarin.Forms 5.0.0.1539–pre2 (5.0.0 Pre Release 2)
  • 23 сентября 2020 года – Xamarin.Forms 5.0.0.1487–pre1 (5.0.0 Pre Release 1)

Основные изменения в последних релизах

10 мая 2023 – Xamarin.Forms 5.0.0.2599-pre1 (5.0.0 Service Release 15 Pre Release 1)

  • Диспетчер UWP должен использовать внутренний диспетчер ядра для состояния - #15716 (@mattleibow)
  • Исправление решения для проектов на файловых системах, чувствительных к регистру - #15727 (@moljac)
  • Обновление целевой версии MonoAndroid до 13.0 - #15718 (@jfversluis)
  • Исправлено исключение NotSupportedException в Xamarin.Forms.Platform.Android.Platform.DefaultRenderer - #15730 (@thisisthekap)
  • Доработка версий зависимостей для цели MonoAndroid13 - #15736 (@jfversluis)

Возникшие проблемы

После обновления до этой версии Xamarin.Forms в результатах сборки могут появиться предупреждения типа «unknown enum constant Scope.LIBRARY_GROUP_PREFIX». На момент написания статьи этот вопрос находится в стадии изучения. Однако это не должно помешать вам собрать свой проект.

8 марта 2023 г. - Xamarin.Forms 5.0.0.2578 (5.0.0 Service Release 14)

  • Исправление TitleView в iOS 16 - #15667 (@jfversluis)
  • Исправления CollectionView из .NET MAUI - #15697 (@jsuarezruiz)
  • Исправление LayoutSubviews рендерера, который может вызывать NRE. - #15670 (@P3PPP)
  • Проверка нуля ItemsViewController - #15638 (@reid-kirkpatrick)
  • Добавление null-guard в MenuItem для предотвращения NRE - #15636 (@jfversluis)

Более подробную информацию читайте здесь.

Оглавление

Материалы по теме