(离子解决方案)禁用特定视图的android硬件后退按钮。后退按钮应该按照应用程序中的其他视图的预期工作

时间:2017-11-06 10:55:32

标签: ionic2 ionic3

在特定视图上点击硬件后退按钮时,它不应执行任何操作。默认情况下,导航会弹出视图,但此处我不想在点击硬件后退按钮时返回导航。我希望它留在那个页面/视图上。 我检查了所有可能的解决方案,但没有运气。这也不重复。

Ionic 2 - Disabling back button for a specific view这是导航后退按钮。我想要一个硬件后退按钮的解决方案。

6 个答案:

答案 0 :(得分:1)

你可以尝试这个

*简单地覆盖空onBackPressed *

@覆盖 public void onBackPressed(){

// do nothing.

}

答案 1 :(得分:1)

你可以尝试这个

*简单地覆盖空onBackPressed *

@Override
public void onBackPressed(){
 // do nothing.}

答案 2 :(得分:0)

您必须编写覆盖方法

@Override
public void onBackPressed() {
    \\you can do whatever you want to here.
    \\don't call **super**, if u want disable back button in current screen.
}

答案 3 :(得分:0)

在您的活动中,您必须覆盖方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        return !disableBackKey ;
    }

    return super.onKeyDown(keyCode, event);
}

make disableBackKey True / False取决于您的要求。

答案 4 :(得分:0)

如果您使用的是活动,请在活动中添加以下功能

@Override
public void onBackPressed() {
    //super.onBackPressed();
}

如果您使用片段,请将以下功能添加到您的片段

public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_BACK:
       return true
    }
            return false;
}

答案 5 :(得分:0)

回答Ionic 2或3

在构造函数的末尾调用下面的方法。

以下代码中的注册是您当前页面或组件的类名。

如果您不想在后退按钮上执行任何操作,只需删除以下IF条件下的代码。

overrideHardwareBackButton() {
            this.platform.ready().then(() => {       
                this.platform.registerBackButtonAction(() => {
                    let activeView:ViewController = this.navCtrl.getActive();
                    if (activeView != null && ((<any> activeView).instance instanceof Registration)) {
                        console.log("Registration -> Home");
                        this.nav.setRoot(HomePage);
                    } else {
                        console.log("Somthing is wrong");
                    }
                });
            });
        }