c# - 加载 WebView Xamarin 表单时的事件指示器

标签 c# webview xamarin.forms activity-indicator

我想在WebView加载数据的时候先加载一个Activity指示器,加载完数据后它就变成Invisible了。

下面是我的 Xaml 代码:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" Title="Shows Trending" xmlns:o="clr-namespace:Octane.Xam.VideoPlayer;assembly=Octane.Xam.VideoPlayer" x:Class="BBSTV.TrendingShowsDetails">
    <ActivityIndicator x:Name="activity_indicator" Color="Blue" />
    <WebView VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" x:Name="loadVideo_wv">
    </WebView>
</ContentPage>

下面是我的 C# 代码:

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace BBSTV
{
    public partial class TrendingShowsDetails : ContentPage
    {
        public TrendingShowsDetails(string videolink)
        {
            InitializeComponent();
            activity_indicator.IsRunning = true;
            loadVideo_wv.Source = "https://www.youtube.com/playlist?list=" + videolink;
            activity_indicator.IsRunning = false;
        }
    }
}

最佳答案

试试这个:

C# 代码:

public TrendingShowsDetails(string videolink)
        {
            InitializeComponent();

            loadVideo_wv.Source = "https://www.youtube.com/playlist?list=" + videolink;

        }


        protected async override void OnAppearing()
        {
            base.OnAppearing();
            await activity_indicator.ProgressTo(0.9, 900, Easing.SpringIn);

        }

        public void OnNavigating(object sender, WebNavigatingEventArgs e)
        {
            activity_indicator.IsVisible = true;


        }

        public void OnNavigated(object sender, WebNavigatedEventArgs e)
        {

            activity_indicator.IsVisible = false;

        }

Xaml 代码:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    Title="Shows Trending" xmlns:o="clr-namespace:Octane.Xam.VideoPlayer;assembly=Octane.Xam.VideoPlayer" x:Class="BBSTV.TrendingShowsDetails">
    <StackLayout>
    <ProgressBar  Progress="0.2" IsVisible="false" HorizontalOptions="FillAndExpand" x:Name="activity_indicator"  />

    <WebView VerticalOptions="FillAndExpand" Navigating="OnNavigating" Navigated="OnNavigated" HorizontalOptions="FillAndExpand" x:Name="loadVideo_wv">
    </WebView>
    </StackLayout>
</ContentPage>

关于c# - 加载 WebView Xamarin 表单时的事件指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45283629/

相关文章:

c# - SHLoadIndirectString 的返回值是错误代码

webview - 如何在 React Native 的 WebView 中使用源而不是 html

android - 在后台流式传输 youtube 视频是否合法?

c# - Xamarin Android 迁移到 AndroidX 后找不到类 "androidx.lifecycle.ProcessLifecycleOwnerInitializer"

Xamarin.Forms Prism 从导航堆栈中删除 View

c# - 用C#向mySQL插入点符号错误

c# - Directory.GetFiles 查找不存在的文件

c# - NGen 和 Gacutil 最佳实践

android - 如何在 android 中使用 Google Analytics 跟踪 webview 内容?

ios - 从内容页面链接时如何保留汉堡菜单?