禁用后退按钮xamarin.forms

时间:2016-06-17 21:53:04

标签: xamarin.forms prism

对不起,如果以前问过这个问题,但是我无法找到答案,这就是我再问这个问题的原因。 我的场景是我在我的 axml视图上放置了一个后退按钮,我正在使用 GoBack()方法执行返回先前视图的导航。

我需要什么,我想要禁用我的硬件上的后退按钮,以便我的应用程序不应该返回到导航堆栈中可用的先前屏幕。我正在为我的应用程序使用 Prism MVVM ,所以是否有可能禁用此按钮或在我的ViewModel上有一些可重写的操作方法,我应该从中停止它。

希望你能理解我的问题。

B.R

1 个答案:

答案 0 :(得分:0)

我发现最好的方法是在Android MainActivity中使用提供的OnBackPressed覆盖,然后访问我保存的某个bool。我个人使用设置插件,但下面的示例使用内置的应用程序属性(它应该工作,但我没有测试它)。

public class MainActivity : FormsApplicationActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        Forms.Init(this, bundle);
        LoadApplication(new App());
    }

    public override void OnBackPressed()
    {
        var disable = (bool) App.Current.Properties["isBackButtonDisabled"];
        if (disable) return;
        base.OnBackPressed();
    }
}