Поделиться через


Xamarin.Forms экспериментальные флаги

При реализации новой Xamarin.Forms функции она иногда ставится за экспериментальный флаг. Это позволяет команде разработчиков быстрее предоставлять новые функции, а также изменять API функций, прежде чем переходить к стабильному выпуску. Затем экспериментальный флаг удаляется после перехода функции в стабильный выпуск.

Xamarin.Forms включает следующие экспериментальные флаги:

  • Shell_UWP_Experimental

Использование функциональных возможностей, лежащих в основе экспериментального флага, требует включения флага или флагов в приложении. Существует два подхода для включения экспериментальных флагов:

  • Включите экспериментальный флаг в проектах платформы.
  • Включите экспериментальный флаг в классе App .

Предупреждение

Использование функциональных возможностей, которые стоят за экспериментальным флагом, без включения флага, приведет к возникновению исключения, указывающего, какой флаг должен быть включен.

Включение флагов в проектах платформы

Этот Xamarin.Forms.Forms.SetFlags метод можно использовать для включения экспериментального флага в проектах платформы:

Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");

Метод SetFlags должен вызываться в AppDelegate классе в iOS, в MainActivity классе на Android и в App классе в UWP.

Внимание

До вызова метода необходимо Forms.Init включить экспериментальный флаг в проектах платформы.

Метод Xamarin.Forms.Forms.SetFlags принимает string аргумент массива, что позволяет включить несколько экспериментальных флагов в одном вызове метода:

Xamarin.Forms.Forms.SetFlags(new string[] { "Shell_UWP_Experimental", "AnotherFeature_Experimental" });

Предупреждение

Никогда не вызывать SetFlags метод несколько раз, так как последующие вызовы перезаписывают результат предыдущих вызовов.

Включение флагов в классе App

Этот Device.SetFlags метод можно использовать для включения экспериментального флага App в классе в проекте общего кода:

Device.SetFlags(new string[]{ "Shell_UWP_Experimental" });

Метод Device.SetFlags принимает IReadOnlyList<string> аргумент, что позволяет включить несколько экспериментальных флагов в одном вызове метода:

Device.SetFlags(new string[]{ "Shell_UWP_Experimental", "AnotherFeature_Experimental" });

Предупреждение

Никогда не вызывать SetFlags метод несколько раз, так как последующие вызовы перезаписывают результат предыдущих вызовов.

Старые флаги экспериментального режима

В следующей таблице перечислены экспериментальные флаги для функций, которые теперь находятся в общедоступной доступности, и Xamarin.Forms выпуск, в котором был удален экспериментальный флаг:

Флаг Xamarin.Forms Выпуска
AppTheme_Experimental 4,8
Brush_Experimental 5,0
CarouselView_Experimental 5,0
CollectionView_Experimental 4.3
DragAndDrop_Experimental 5,0
FastRenderers_Experimental 4.0
IndicatorView_Experimental 4,7
Markup_Experimental 5.0 (перемещено в Xamarin Community набор средств)
MediaElement_Experimental 5.0 (перемещено в Xamarin Community набор средств)
RadioButton_Experimental 5,0
Shapes_Experimental 5,0
Shell_Experimental 4.0
StateTriggers_Experimental 4,7
SwipeView_Experimental 5,0
Visual_Experimental 3,6