Android Fragment onBackPressed

时间:2017-05-23 07:16:47

标签: java android android-fragments

我的片段转换非常奇怪。我试图在按下后退按钮时打开新片段:

//removed code

然后,当我在家里片段,没有我再次按下它,它将关闭应用程序:

// removed code

我不明白为什么从一个片段切换到另一个片段共享相同的onKey?因为它不应该是这样的行为:我在片段2中按下,打开主片段,在主片段中我再次按下,然后它关闭应用程序。

目前它的工作方式如下:片段2反压,打开主片段,没有触及任何东西,它进入主片段中的onKey。

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:-1)

删除结束通话" getActivity()。finish();"然后试试......

v.setFocusableInTouchMode(true);
    v.requestFocus();
    v.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if( keyCode == KeyEvent.KEYCODE_BACK ) {
                getActivity().moveTaskToBack(true);
                return true;
            } else {
                return false;
            }
        }
    });

如果没有,请尝试其他解决方案...在父活动中添加此方法。

@Override
public void onBackPressed() {
 FragmentManager fragmentmanager = getSupportFragmentManager();

 if(fragmentmanager.getBackStackEntryCount() > 0){
         fragmentmanager.popBackStack();
    } else{
        finish();
    }
}