我需要在执行 fragment 事务时进行监听,例如,当我用另一个 fragment 替换 fragment 时,无需调用 addToBackStack()。 FragmentManager 类提供了一个 addOnBackStackChangedListener 回调,但是当我执行 fragment 替换而不调用 addToBackStack 时,它不会被执行。
编辑:监听操作在一个类中执行,该类只能访问 Activity 实例及其 fragment 管理器。
最佳答案
您可以为所有 fragment 使用基类。然后你可以覆盖 onDetach() 方法。例如
public class BaseFragment extends Fragment {
@Override
public void onDetach() {
// run code that needed by your library. e.g.
if (getActivity() != null && getActivity() instanceof MainActivity) {
((MainActivity)getActivity()).someMethodToDetectOnDetach();
}
super.onDetach();
}
然后像这样从 BaseFragment 扩展你的 fragment
public class MyFragment extends BaseFragment {
// .....
}
关于Android fragment 事务监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975529/