【发布时间】:2018-02-08 16:38:23
【问题描述】:
我是 Xamarin.Forms 的新手,如果我没有使用正确的话,请见谅。我创建了一个名为“WebBrowser”的解决方案,以创建一个简单的移动浏览器;目前我正在处理公共文件 MainPage.xaml 和 MainPage.xaml.cs,我正在 Android 5.1 智能手机。 我使用 Microsoft Visual Studio 2017 15.5.4。
在MainPage.xaml中我指定了以下代码
<Button Text="Back"
x:Name="backButton"
IsEnabled="False"
Clicked="previousPage"/>
<Button Text="Next"
x:Name="nextButton"
IsEnabled="False"
Clicked="nextPage"/>
<WebView x:Name="appWebView"
Source="https://www.google.com/"
Navigating="onLoadingPage"
Navigated="onPageLoaded"/>
所以当一个页面被加载时,方法onPageLoaded()被调用。
该方法包含以下代码
private void onPageLoaded(object sender, EventArgs e)
{
if (appWebView.CanGoBack)
backButton.IsEnabled = true;
else
backButton.IsEnabled = false;
if (appWebView.CanGoForward)
nextButton.IsEnabled = true;
else
nextButton.IsEnabled = false;
}
为了在用户可以/不能转到上一页/下一页时启用/禁用“箭头”按钮。
在这种情况下,appWebView.CanGoBack 和 appWebView.CanGoForward总是 返回 false,即使它应该为 true。但是,如果我保持启用按钮并在用户单击其中一个按钮时检查它们的值,则两者都会返回正确的值。
为什么它在 onPageLoaded() 方法中不起作用?
【问题讨论】:
-
似乎在属性有效更改之前引发了事件。可以分享
backbutton和nextButton创建代码吗?也许还有另一种方法可以实现您的目标。 -
@DiegoRafaelSouza 代码已更新
标签: c# android visual-studio xamarin xamarin.forms