处理顶部碎片上的按压

时间:2015-06-04 09:05:22

标签: android android-fragments

我有两个片段[A]和[B]。

在片段[A]中,我想忽略背压,所以我有以下代码

View view = inflater.inflate(R.layout.fragment_confirmation, container, false);

    view.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (keyCode == KeyEvent.KEYCODE_BACK) {
                return true;
            }

            return false;
        }
    });

这在片段[A]上工作正常。当我将片段[B]添加到backstack时,似乎片段[B]无法处理后退,但忽略后退的逻辑仅在片段[A]中。任何人都可以解释这种奇怪的行为吗?

1 个答案:

答案 0 :(得分:0)

尝试这可能是有效的。在onResume中取消后退键...

@Override
public void onResume() {

    super.onResume();

    getView().setFocusableInTouchMode(true);
    getView().requestFocus();
    getView().setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){

                // handle back button    
                return true;
                }

            return false;
        }
    });
}