我创建了一组自定义html5音频控件,我在iOS和Android Xamarin Forms应用中使用它。 当我导航到我的应用程序中此内容所在的页面时,WebView会在呈现html内容之前呈现为白色框,只需几分之一秒。有没有办法在用户可见之前呈现此视图?
public partial class TutorialPage : ContentPage
{
private readonly ITutorialViewModel _dataModel;
public TutorialPage(ITutorialViewModel dataModel)
{
InitializeComponent();
Title = "Tutorial";
var browser = new WebView() { HeightRequest = 150, WidthRequest = 400, HorizontalOptions = LayoutOptions.CenterAndExpand };
browser.Source = DependencyService.Get<IBaseUrl>().Get();
mainStack.Children.Add(browser);
}
}
答案 0 :(得分:1)
您可以随时使用网页浏览的事件。
看看他们:
导航 - 导航完成后引发的事件。
导航 - 导航开始时引发的事件。
所以你要做的就是设置webview&#34; IsVisible&#34;在开始时将属性设置为false,并且当Navigated事件触发时,将其设置为true。
示例:
app.controller('2010controller', function() {
var teams = [
{
name: 'Team One',
position: 1,
played: 38,
won: 27,
drawn: 5,
lost: 6,
goalsFor: 103,
goalsAgainst: 32,
goalDifference: 71,
points: 86
},
{
name: 'Team Two',
position: 2,
played: 38,
won: 27,
drawn: 4,
lost: 7,
goalsFor: 86,
goalsAgainst: 28,
goalDifference: 58,
points: 85
},
]
});
})
如果您不想将WebView作为全局类变量,可以从Navigated事件的sender参数获取它,如下所示:
public partial class TutorialPage : ContentPage
{
private readonly ITutorialViewModel _dataModel;
private WebView browser;
public TutorialPage(ITutorialViewModel dataModel)
{
InitializeComponent();
Title = "Tutorial";
browser = new WebView() { HeightRequest = 150, WidthRequest = 400, HorizontalOptions = LayoutOptions.CenterAndExpand, IsVisible = false };
browser.Source = DependencyService.Get<IBaseUrl>().Get();
browser.Navigated += Browser_Navigated:
mainStack.Children.Add(browser);
}
void Browser_Navigated (object sender, WebNavigatedEventArgs e)
{
browser.IsVisible = true;
}
}
答案 1 :(得分:0)
我通过使背景透明来绕过我的问题。控件仍然会弹出,但它比在此期间在页面上有一个白色框更好。