我需要监听何时执行片段事务,例如,当我用一个片段替换另一个片段时,而不调用addToBackStack()。FragmentManager类提供了一个addOnBackStackChangedListener回调,但是当我在没有调用addToBackStack的情况下执行片段替换时,它不会被执行。
编辑:监听操作是在一个类中执行的,该类只能访问活动实例及其片段管理器。
发布于 2016-10-11 20:15:53
您可以对所有片段使用基类。然后,您可以覆盖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 {
// .....
}发布于 2016-10-11 18:57:09
可以使用Fragment的onAttach()方法。
https://stackoverflow.com/questions/39975529
复制相似问题