gpt4 book ai didi

Xamarin.Forms.WebView 初始加载指示器

转载 作者:行者123 更新时间:2023-12-02 21:30:18 25 4
gpt4 key购买 nike

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

我的应用程序只是包装了一个网站,但在带宽较差的情况下,当启动屏幕消失并且 WebView 正在加载其内容时,我当然会看到白屏。

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

提前致谢。

亲切的问候,标记

最佳答案

只需使用 StackLayoutActivityIindicatorWebView 作为子级,并根据 WebView 中设置的 IsWorking 属性值设置其可见性.NavigatingWebView.Navierated 事件。您的 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,
}
};

关于Xamarin.Forms.WebView 初始加载指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com