我需要在执行片段事务时监听,例如,当我用另一个片段替换片段时,不需要调用addToBackStack()。 FragmentManager类提供了addOnBackStackChangedListener回调,但是当我执行片段替换而不调用addToBackStack时,它不会被执行。
编辑:侦听操作在只能访问活动实例及其片段管理器的类中执行。
答案 0 :(得分:1)
您可以为所有片段使用Base类。然后你可以覆盖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
public class MyFragment extends BaseFragment {
// .....
}
答案 1 :(得分:0)
您可以使用Fragment的onAttach()方法。