参考文档:https://developer.android.com/reference/androidx/activity/OnBackPressedDispatcher
最近在使用fragment,需要在fragment中处理back事件,除了传统百度的fragment处理back事件方法外,发现了一种新的处理onbackPressed的方法,记录一下。
在onAttach方法中:
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);callback = new OnBackPressedCallback(
true // default to enabled
) {
@Override
public void handleOnBackPressed() {
showBackInfo();
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(
this, callback);
}
public void showBackInfo() {
Log.e(TAG, "showBackInfo: " + " fragment back info.");
if (callback != null){
callback.setEnabled(false);
}
requireActivity().getOnBackPressedDispatcher().onBackPressed();
}
如果消耗掉了back事件 则不需要setEnable(false)