当我在xamarin中创建WebView时,在启动应用程序时它是不可见的。它在视图重新调整时可见。 我该如何解决上述问题。
以下是我正在使用的示例代码
var browser = new WebView();
var htmlSource = new HtmlWebViewSource ();
public SamplePage()
{
InitializeComponent();
StackLayout stackLayout = new StackLayout
{
VerticalOptions = LayoutOptions.FillAndExpand,
Children =
{
sometextbox,
browser
}
}
}
//Code within some button's event
htmlSource.Html = @"<html><body>
<h1>Xamarin.Forms</h1>
<p>Welcome to WebView.</p>
</body></html>";
browser.Source = htmlSource;
答案 0 :(得分:2)
似乎FillAndExpand应该在webview上,而不是在StackLayout上
答案 1 :(得分:1)
问题在于WebView
不知道它需要多大,所以它可能存在,但没有大小。我所做的是在Width
中分配Height
和SizeChanged
,如下所示:
public SamplePage()
{
InitializeComponent();
StackLayout stackLayout = new StackLayout
{
VerticalOptions = LayoutOptions.FillAndExpand,
Children =
{
sometextbox,
browser
}
}
SizeChanged += (sender, args) => {
browser.WidthRequest = Width;
browser.HeightRequest = Height * 0.75;
}
}
如果浏览器仍未显示,请保留SizeChanged()
代码,因为它会在轮换时更新WebView
,但也会将相同的代码添加到OnAppearing()
:
protected override void OnAppearing() {
base.OnAppearing();
browser.WidthRequest = Width;
browser.HeightRequest = Height * 0.75;
}
如果您需要在点击按钮时执行此操作,或者您甚至可以保留上述代码,只需更改WebView.IsVisible
。