我有两个片段[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]中。任何人都可以解释这种奇怪的行为吗?
答案 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;
}
});
}