【问题标题】:Xamarin.Forms.WebView initial loading indicatorXamarin.Forms.WebView 初始加载指示器
【发布时间】:2015-07-31 22:48:00
【问题描述】:

对我来说,采用 Xamarin 表单 WebView 并为第一次加载添加加载进度条的最简单方法是什么?

我的应用程序只是简单地包装了一个网站,但在带宽不足的情况下,当初始屏幕消失并且 WebView 正在加载它的内容时,我当然会看到一个白屏。

我想查看进度指示器。我环顾四周,但没有找到一个简单的解决方案,而且大多数问题都不是针对 Xamarin.Forms 的。

提前致谢。

亲切的问候, 标记

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    只需将StackLayoutActivityIindicatorWebView 一起用作子项,并根据在WebView.NavigatingWebView.Navigated 事件中设置的 IsWorking 属性值设置其可见性.你的 ViewModel 必须实现 IOnPropertyChanged

    var webViewView = new WebView() {
        HorizontalOptions = LayoutOptions.FillAndExpand,
        VerticalOptions = LayoutOptions.FillAndExpand,
    };
    webViewView.SetBinding<YourViewModel>(View.IsVisibleProperty, v => v.IsWorking, 
        BindingMode.OneWay, new Converters.NegateBoolConverter());
    
    webViewView.Navigating += (sender, e) => {
        viewModel.IsWorking = true;
    };
    
    webViewView.Navigated += (sender, e) => {
        viewModel.IsWorking = false;
    };
    
    var activityIndicator = new ActivityIndicator() {
        HorizontalOptions = LayoutOptions.Center,
        VerticalOptions = LayoutOptions.Center,
    };
    activityIndicator.SetBinding<YourViewModel>(ActivityIndicator.IsRunningProperty, v => v.IsWorking);
    
    var isWorkingView = new ContentView() {
        HorizontalOptions = LayoutOptions.FillAndExpand,
        VerticalOptions = LayoutOptions.FillAndExpand,
        Content = activityIndicator
    };
    isWorkingView.SetBinding<YourViewModel>(ContentView.IsVisibleProperty, v => v.IsWorking);
    
    var root = new StackLayout() {
        HorizontalOptions = LayoutOptions.FillAndExpand,
        VerticalOptions = LayoutOptions.FillAndExpand,
        Children = {
            webViewView,
            isWorkingView,
        }
    };
    

    【讨论】:

    • 我发现,一旦 WebView 开始向网络发出请求,即在您设置 URL 时,导航事件就不会触发。我改用了 ContentPage 的 Appearing 事件。
    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 2013-07-21
    • 2018-12-18
    • 2012-11-24
    • 1970-01-01
    • 2014-09-02
    • 2012-06-18
    • 2012-10-17
    相关资源
    最近更新 更多