无法禁用片段中的后退按钮

时间:2015-01-30 14:54:20

标签: android android-fragments

我有一个带有viewPager的mainActivity和三个标签,每个标签都有各自的fragment。我希望在启动此mainActivity并按下backButton时,不会发生任何事情。

要实现这一点,我在mainActivity中覆盖onBackPressed(),其中viewPager带有标签,但是当mainActivity ia启动其中一个标签Fragment时,默认情况下会出现,当我按下backButton时,我回去了,这意味着Backbuton没有被禁用。

就是这样,在mainActivity中,我有:

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    Log.w(TAG, "@onBackPressed().");
}

并且片段中没有禁用他的后退按钮,每次按下它时,logCat会在onBackPressed显示消息然后我回去,我不想要这个,我想要的我在片段“任何一个标签”中,backButton应该没有效果。

请让我知道如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

尽量不要打电话

super.onBackPressed();

虽然日志仍会打印,因为会调用该方法,但这会阻止Android执行逻辑并返回。

如果您希望片段选项卡不执行任何操作,但是要使用viewpager来处理它,请执行以下操作

@Override
public void onBackPressed() {
    if (getCurrentTab == 0) {
        super.onBackPressed();
    } else {
        //This will stop the fragment tabs from doing anything when back is pressed
    }
}

答案 1 :(得分:1)

如果您需要避开后退按钮,请评论超级电话//super.onBackPressed();