在需要防止用户离开的Fragment中,重写onBackPressed方法,并返回true,表示此时返回键无效。
示例代码:
public class MyFragment extends Fragment {
...
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
...
// 禁止回退键
view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
// 拦截返回按钮事件
return true;
}
return false;
}
});
}
@Override
public void onBackPressed() {
// 返回键无效
return true;
}
...
}