我正在开发一个小型的Xamarin.Forms webview应用程序.这是对之前回答的问题的后续问题,xamarin-forms-making-webview-go-back
所以我有一个工具栏和一个后退按钮实现和工作.但是当我运行程序时,模拟器已经打开(使用Genymotion),程序运行并显示工具栏和后退按钮......但不会显示webview.
但这是一件奇怪的事情,有时我在模拟器处于睡眠模式时运行程序,然后将程序切换回程序完美.此外,当我在iOS上测试它时,它只是显示工具栏而没有webview!更常见的是,模拟器不会显示webView.我也在我的Android设备上测试了这个,同样的事情发生了,它会显示工具栏但不显示webview.
Abit令人困惑我知道但是任何人都可以帮助我解决这个问题.
我将在下面附上我的代码:
App.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Xamarin.Forms; namespace WebView_form { public class App : Application { public App() { //const string URL = "http://www.google.com"; MainPage = new NavigationPage(new WebPage()); } protected override void OnStart() { // Handle when your app starts } protected override void OnSleep() { // Handle when your app sleeps } protected override void OnResume() { // Handle when your app resumes } } }
WebPage.cs
using System; using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; using System.Text; using Xamarin.Forms; namespace WebView_form { public class WebPage : ContentPage { private WebView webView; public WebPage() { webView = new WebView { Source = "https://www.google.com" }; // toolbar ToolbarItems.Add(new ToolbarItem("Back", null, () => { webView.GoBack(); })); Content = new StackLayout { Children = { webView } }; } } }
如果有人能帮助我,那就太好了.
如果不起作用,请设置VerticalOptions
为FillAndExpand
并执行相同操作HorizontalOptions
.
可能WebView
正在获得零大小的高度,因为当布局发生时,视图仍然是空的.
所以像这样更改WebPage.cs中的代码;
// ... Other code public WebPage() { webView = new WebView { Source = "https://www.google.com", VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand }; // toolbar ToolbarItems.Add(new ToolbarItem("Back", null, () => { webView.GoBack(); })); Content = new StackLayout { Children = { webView } }; } // ... Other code