Я пытаюсь создать sh страницу, которая представляет собой TabbedPage с 3 вкладками, которые являются страницами с SfSchedule (элемент управления SyncFusion, для загрузки которого требуется немного времени). Поскольку загрузка занимает много времени, я использую плагин Rg.Plugins.Popup для создания модальной страницы с * GIF (некоторые символы движутся). Проблема в том, что во время нажатия TabbedPage gif перестает двигаться, а после загрузки продолжает двигаться. Я пытался использовать другой поток для создания экземпляра страницы, но мне пришлось в конечном итоге использовать Device.BeginInvokeOnMainThread для того, чтобы pu sh страница заблокировала движение gif. Кроме того, мне нужно создать экземпляр страницы в другом потоке, а затем создать sh ее с помощью Device.BeginInvokeOnMainThread, и для этого требуется время, а не создание экземпляра страницы.
Метод, который выдвигает страницу и всплывающее окно:
public async void Navegar(Type page)
{
_tipoPagina = page;
await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PushAsync(new LoadingPopUp());
var pagina = (Page)Activator.CreateInstance(_tipoPagina);
await ((NavigationPage)this.Detail).PushAsync(pagina);
await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PopAllAsync();
}
Всплывающая страница:
<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage
xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="XXXXX.LoadingPopUp">
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="White">
<Image VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Source="loading.gif" IsAnimationPlaying="True"></Image>
</StackLayout>
</pages:PopupPage>
Страница, которая занимает много времени до pu sh:
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:plugin="clr-namespace:Plugin.Badge.Abstractions;assembly=Plugin.Badge.Abstractions"
xmlns:calendario_vistas="clr-namespace:XXXXX.Calendario_Vistas"
mc:Ignorable="d"
x:Class="XXXXX.Calendario"
Title="Calendario"
NavigationPage.HasNavigationBar="False">
<TabbedPage.Children>
<NavigationPage Title="Día">
<NavigationPage.IconImageSource>
<FontImageSource FontFamily="{StaticResource FASolido}" Glyph="" Size="45"></FontImageSource>
</NavigationPage.IconImageSource>
<x:Arguments>
<calendario_vistas:CalendarioDiario plugin:TabBadge.BadgeText="3"></calendario_vistas:CalendarioDiario>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Semanal">
<NavigationPage.IconImageSource>
<FontImageSource FontFamily="{StaticResource FASolido}" Glyph="" Size="45"></FontImageSource>
</NavigationPage.IconImageSource>
<x:Arguments>
<calendario_vistas:CalendarioSemanal plugin:TabBadge.BadgeText="10"></calendario_vistas:CalendarioSemanal>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Listado">
<NavigationPage.IconImageSource>
<FontImageSource FontFamily="{StaticResource FASolido}" Glyph="" Size="45"></FontImageSource>
</NavigationPage.IconImageSource>
<x:Arguments>
<calendario_vistas:CalendarioLista></calendario_vistas:CalendarioLista>
</x:Arguments>
</NavigationPage>
</TabbedPage.Children>
</TabbedPage>
Любая помощь приветствуется. Спасибо.
PD: Я только что понял, что если я использую ActivityIndicator, он все время движется, он не останавливается. С индикатором активности работает отлично. Я просто не могу заставить его играть в GIF без остановки. PD2: Я дважды публиковал это на форумах Xamarin Forms и не получил ответов: (