Загрузите всплывающую страницу с GIF-картой, в то время как нажатие на страницу останавливает ее движение - Xamarin Forms - PullRequest
2 голосов
/ 10 марта 2020

Я пытаюсь создать 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="&#xf783;" 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="&#xf784;" 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="&#xf073;" 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 и не получил ответов: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...