Xamarin Webview on ProgressChanged和progressbar
在Xamarin应用程序中,我有一个Xamarin Webview on ProgressChanged和progressbar,xamarin,xamarin.forms,xamarin.android,Xamarin,Xamarin.forms,Xamarin.android,在Xamarin应用程序中,我有一个CustomWebView渲染器;我正在视图中注入并在WebChromeClient的OnProgressChanged事件中显示带有以下代码的进度条 初始化: CusWebChromeClient: public class CusWebChromeClient : WebChromeClient { Android.Widget.ProgressBar progressBar; public CusWebChromeClient(Andr
CustomWebView
渲染器;我正在视图中注入并在WebChromeClient
的OnProgressChanged
事件中显示带有以下代码的进度条
初始化:
CusWebChromeClient:
public class CusWebChromeClient : WebChromeClient
{
Android.Widget.ProgressBar progressBar;
public CusWebChromeClient(Android.Widget.ProgressBar progressBar)
{
this.progressBar = progressBar;
}
public override void OnProgressChanged(Android.Webkit.WebView view, int newProgress)
{
if (newProgress < 100 && progressBar.Visibility == ViewStates.Gone)
{
progressBar.Visibility = ViewStates.Visible;
}
progressBar.SetProgress(newProgress, true);
if (newProgress == 100)
{
//progressBar.Visibility = ViewStates.Gone;
}
}
}
公共类CusWebChromeClient:WebChromeClient
{
Android.Widget.ProgressBar ProgressBar;
公共CusWebChromeClient(Android.Widget.ProgressBar ProgressBar)
{
this.progressBar=progressBar;
}
public override void OnProgressChanged(Android.Webkit.WebView视图,int newProgress)
{
if(newProgress<100&&progressBar.Visibility==ViewStates.Gone)
{
progressBar.Visibility=ViewStates.Visible;
}
progressBar.SetProgress(newProgress,true);
如果(newProgress==100)
{
//progressBar.Visibility=ViewStates.Gone;
}
}
}
问题是进度条显示得非常小,如:
我需要以全显示宽度和更高的高度显示它。您忘了设置进度条的宽度 可以使用屏幕宽度在自定义渲染器中设置进度条。在那之后,一切都会好起来的
var width = (int)Application.Current.MainPage.Width;
请注意,“Application”是“Android.App.Application”和“Xamarin.Forms.Application”之间的模糊引用。您可以添加如下引用来修复它
using Application = Xamarin.Forms.Application;
更改:
Control.AddView(progressBar);
Control.AddView(progressBar, width, 30);
至:
Control.AddView(progressBar);
Control.AddView(progressBar, width, 30);
与您确认,是否要在WebView或WebChromeClient上使用progressBar进行渲染?我需要在WebChromeClient事件中使用它,因为我有该事件there@WendyZang-你有其他的解决方案吗?我试着用你提供的代码段进行复制,但我仍然需要更多的信息。你能在GitHub上提供代码示例供我测试吗?@WendyZang MSFT你可以在这里查看: