我试图阻止我的应用用户按下硬件后退按钮。 我在xaml文件后面的代码中找到了这段代码:
protected override bool OnBackButtonPressed()
{
return true;
}
我尝试过各种变体,包括使用布尔而不是Bool并返回base.functionname
似乎没有任何东西可以触发此方法。
这是更大的背景:
代码背后:
namespace Watson.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class StartScan : ContentPage
{
public StartScan()
{
InitializeComponent();
}
protected override bool OnBackButtonPressed()
{
return true;
}
}
}
这是堆栈中的第二页,禁用该按钮只需要在此页面上进行,不能在其他地方进行。
任何帮助都将不胜感激。
答案 0 :(得分:1)
这对我有用,我在Android和iOS平台上尝试使用Xamarin.Forms。
希望你能解决这段代码。
namespace Test
{
public partial class TestPage2 : ContentPage
{
public TestPage2()
{
NavigationPage.SetHasBackButton(this, false);
InitializeComponent();
}
protected override bool OnBackButtonPressed()
{
//return base.OnBackButtonPressed();
return true;
}
}
}
谢谢,
答案 1 :(得分:1)
您还可以在XAML中添加NavigationPage.SetHasBackButton属性
NavigationPage.HasBackButton="True"
在内容页面中
答案 2 :(得分:1)
对我来说,它正在使用以下代码(三星Android)
protected override bool OnBackButtonPressed()
{
//base.OnBackButtonPressed();
browser.GoBack();
return true;
}
答案 3 :(得分:0)
您可以这样:
namespace Watson.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class StartScan : ContentPage
{
public StartScan()
{
NavigationPage.SetHasBackButton(this, false);
InitializeComponent();
}
protected override bool OnBackButtonPressed()
{
// you can put some actions here (for example, an dialog prompt, ...)
return true;
}
}
}
答案 4 :(得分:0)
当您单击设备上的后退按钮(而不是从导航页面上)时,触发OnBackButtonPressed,请在OnDisappearing中执行您的逻辑!