Xamarin.Forms - Отключение ActivityIndicator с использованием состояний активности - PullRequest
0 голосов
/ 05 мая 2018

В Xamarin.Forms у меня есть ActivityIndicator и label, которые всплывают при загрузке видео, и я хочу правильно отключить его, когда видео полностью загружено.

В моем коде "this.IsBusy" есть привязка, которая правильно включает / отключает ActivityIndicator.

При отладке я замечаю, что при запуске видео появляется следующее сообщение:

05-05 14:17:09.843 V/MediaPlayer-JNI(19723): isPlaying: 1

ВОПРОС: Как я могу использовать это состояние isPlaying, чтобы превратить мой «this.IsBusy» в ложное? Является ли это возможным? Или мне нужен пользовательский рендер, чтобы все это произошло.

Ниже мой XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:PreAppStructure"
         xmlns:roxv="clr-namespace:Rox;assembly=Rox.Xamarin.Video.Portable"
         x:Class="PreAppStructure.Page3"
         Title="Welcome to page 3">
  <ContentPage.Content>
    <Grid>
        <roxv:VideoView x:Name="VideoView" AutoPlay="True" LoopPlay="True" ShowController="True" Source="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" />
        <StackLayout BackgroundColor="Black" HorizontalOptions="Center" VerticalOptions="Center" IsVisible="True">
            <ActivityIndicator Color="White"
                x:Name="loader"
                IsRunning="{Binding IsBusy}" 
                VerticalOptions="Center" HorizontalOptions="Center" />
            <Label x:Name ="loadingtext" Text="Loading...Please wait!" HorizontalOptions="Center" TextColor="White" IsVisible="{Binding IsBusy}"/>
        </StackLayout>
    </Grid>                
  </ContentPage.Content>
</ContentPage>

Ниже мой класс C #:

...
using Rox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace PreAppStructure
{
    public partial class Page3 : ContentPage
    {
        public Page3()
        {
            InitializeComponent();
            this.BindingContext = this;
            this.IsBusy = true; // Activity Indicator is now successfully visible!   
            // When the app reaches the "isPlaying" state, I wish the Activity Indicator to not be visible (false)
        }   //On this line, the page loads, video buffers and then the video plays        
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...